如果整个字符串匹配(不是子字符串),它如何对正则表达式使字符串返回true?
例如:
test( \ee\ , "street" ) #=> returns false
test( \ee\ , "ee" ) #=> returns true!
谢谢。
答案 0 :(得分:70)
您可以将字符串的开头与\A
匹配,将结尾与\Z
匹配。在ruby中^
和$
分别匹配行的开头和结尾:
>> "a\na" =~ /^a$/
=> 0
>> "a\na" =~ /\Aa\Z/
=> nil
>> "a\na" =~ /\Aa\na\Z/
=> 0
答案 1 :(得分:16)
这似乎对我有用,虽然看起来很丑陋(可能是一种更有吸引力的方式):
!(string =~ /^ee$/).nil?
当然//上面的所有内容都可以是你想要的任何正则表达式。
示例:
>> string = "street"
=> "street"
>> !(string =~ /^ee$/).nil?
=> false
>> string = "ee"
=> "ee"
>> !(string =~ /^ee$/).nil?
=> true
注意:使用ruby(1.8.7)和rails(3.1.1)
在Rails控制台中进行测试答案 2 :(得分:3)
那么,你问的是如何测试这两个字符串是否相等,对吧?只是使用字符串相等!这通过了你和Tomas引用的每一个例子:
'ee' == 'street' # => false
'ee' == 'ee' # => true
"a\na" == 'a' # => false
"a\na" == "a\na" # => true