2012-12-07 20 views
65

我只是想知道红宝石正则表达式是否具有无法比拟的运营商一样,在Perl !~。我觉得这是不方便使用(?!xxx)(?<!xxxx),因为你不能在xxx部分使用正则表达式模式。在Perl中,Ruby正则表达式是否有像“!〜”这样的不匹配运算符?

+0

http://rubular.com – jbearden

+7

所有你需要做的就是火了起来'irb'和尝试。可能会比张贴SO问题更快。 –

+21

但不超过谷歌上搜索“红宝石不符”,并寻找有关所以这个答案更快;!) – micapam

回答

123

是:!~作品就好了 - 你可能认为它不会因为it’s missing from the documentation page of Regexp。尽管如此,它的工作原理:

irb(main):001:0> 'x' !~ /x/ 
=> false 
irb(main):002:0> 'x' !~ /y/ 
=> true 
+3

'〜'下[对象](http://ruby-doc.org/core-2.3.1/Object.html记录#方法-I-21-7E)。 –

1

据我所知(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