首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby正则表达式在Perl中有像"!~“这样的非匹配运算符吗?

Ruby正则表达式在Perl中有像"!~“这样的非匹配运算符吗?
EN

Stack Overflow用户
提问于 2012-12-07 15:57:58
回答 3查看 48K关注 0票数 102

我只想知道ruby regex是否有像perl中的!~那样的非匹配运算符。我觉得使用(?!xxx)(?<!xxxx)不方便,因为您不能在xxx部分中使用正则表达式模式。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-07 16:04:51

是的:!~运行得很好--你可能认为它不会,因为it’s missing from the documentation page of Regexp。尽管如此,它仍然有效:

代码语言:javascript
复制
irb(main):001:0> 'x' !~ /x/
=> false
irb(main):002:0> 'x' !~ /y/
=> true
票数 172
EN

Stack Overflow用户

发布于 2015-02-06 11:04:17

支持AFAIK (?!xxx):

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2020-09-04 22:21:46

回到Perl语言中,'foobar' !~ /bar/非常适合测试字符串是否包含"bar“。

在Ruby中,尤其是在现代风格指南中,我认为更明确的解决方案更传统,更容易理解:

代码语言:javascript
复制
input = 'foobar'

do_something unless input.match?(/bar/) 

needs_bar = !input.match?(/bar/)

也就是说,我认为如果有一个.no_match?方法就很棒了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13759091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档