Я просто хочу знать, имеет ли румяное регулярное выражение не совпадающий оператор, как !~
в perl. Я считаю неудобным использовать (?!xxx)
или (?<!xxxx)
, потому что вы не можете использовать шаблоны регулярных выражений в части xxx
.
Регулярное выражение Ruby имеет не совпадающий оператор, например, "! ~" В Perl?
Ответ 1
Да: !~
работает просто отлично - вы, вероятно, думали, что это не так, потому что его нет на странице документации Regexp
. Тем не менее, это работает:
irb(main):001:0> 'x' !~ /x/
=> false
irb(main):002:0> 'x' !~ /y/
=> true
Ответ 2
Поддерживается AFAIK (?! xxx):
2.1.5 :021 > 'abc1234' =~ /^abc/
=> 0
2.1.5 :022 > 'def1234' =~ /^abc/
=> nil
2.1.5 :023 > 'abc1234' =~ /^(?!abc)/
=> nil
2.1.5 :024 > 'def1234' =~ /^(?!abc)/
=> 0