正则表达式查询

时间:2012-11-14 01:04:51

标签: ruby regex

我正在使用Ruby来做一个简单的子串类型匹配。我试图理解为什么会发生以下情况:

irb(main):024:0> puts "match" if "foo" =~ /foo/
match
=> nil
irb(main):025:0> puts "match" if "foo" =~ /foo,/
=> nil

如何修改此正则表达式,以便在搜索条件的任何部分与“foo”匹配时进行匹配?

2 个答案:

答案 0 :(得分:1)

你的比较倒退了:

"foo".match(/foo,/) # See if "foo" matches the pattern "foo,"
# => nil
"foo,".match(/foo/) # See if "foo," matches the pattern "foo"
# => #<MatchData "foo"> 

=~运算符的历史已经过时了,因为它不是不言自明的。

答案 1 :(得分:-2)

您可以使用String的扫描方法并传入要检查的正则表达式。

1.9.3p194 :008 > puts "match" if "foo".scan(/foo,/)
match
=> nil 
相关问题