Регулярное выражение Ruby имеет не совпадающий оператор, например, "! ~" В Perl?

Я просто хочу знать, имеет ли румяное регулярное выражение не совпадающий оператор, как !~ в perl. Я считаю неудобным использовать (?!xxx) или (?<!xxxx), потому что вы не можете использовать шаблоны регулярных выражений в части xxx.

Ответ 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