如何对正则表达式的字符串,如果整个字符串匹配(而不是子字符串)将返回true?如何测试一个整数字符串与红宝石正则表达式?
如:
test(\ee\ , "street") #=> returns false
test(\ee\ , "ee") #=> returns true!
谢谢。
如何对正则表达式的字符串,如果整个字符串匹配(而不是子字符串)将返回true?如何测试一个整数字符串与红宝石正则表达式?
如:
test(\ee\ , "street") #=> returns false
test(\ee\ , "ee") #=> returns true!
谢谢。
您可以将字符串的开头与\A
匹配,最后以\Z
结尾。在红宝石^
和$
比赛还行的开头和结尾,分别为:
>> "a\na" =~ /^a$/
=> 0
>> "a\na" =~ /\Aa\Z/
=> nil
>> "a\na" =~ /\Aa\na\Z/
=> 0
您希望使用\ z而不是\ Z来匹配整个字符串。 '“hi \ n”=〜/ \ Ahi \ Z /' – 2014-01-24 08:58:01
返回值(当不为零)是第一个匹配的第一个字符的索引。 – 2016-03-22 14:58:59
所以,你问的是如何测试两个字符串是否相等,权呢?只要使用字符串平等!这传递的是你和托马斯举的例子每一个:
'ee' == 'street' # => false
'ee' == 'ee' # => true
"a\na" == 'a' # => false
"a\na" == "a\na" # => true
这是真的,但是一个正则表达式也允许你将'平等'的定义扩展到像/ ^(ee | oo)$ /很好的东西。 – doctororange 2010-02-11 13:55:39
你是否得到这五个ups?我的意思是真的有帮助5人被告知,你可以检查字符串与平等操作... ... - xD我没有冒犯,但嘿来吧,这是真的吗? – Timo 2011-06-09 09:10:06
@Timo Lehto:它通过了OP提供的每一个单一规格,加上其他答案中的每个例子,它比其他答案简单得多。我看不出有什么问题。 – 2011-06-10 15:21:17
这似乎为我工作,但它看起来丑陋的(可能是一个更有吸引力的方式是可以做到的):
!(string =~ /^ee$/).nil?
当然,上面的//里面的所有东西都可以是任何你想要的正则表达式。
例子:
>> string = "street"
=> "street"
>> !(string =~ /^ee$/).nil?
=> false
>> string = "ee"
=> "ee"
>> !(string =~ /^ee$/).nil?
=> true
注:Rails的控制台测试与红宝石(1.8.7)和导轨(3.1.1)
给一个人一个字符串比较,他会是真实的,给一个男人是一个正则表达式,他将失去推理和搜索互联网的所有能力。 – Lazarus 2010-02-10 12:25:15
@doctororange,你愿意接受Tomas Markauskas'answer吗?我不能删除我的答案,因为你接受它,丁丁我忘记了Ruby处理(一些)正则表达式元字符不同于大多数正则表达式实现。谢谢。 – 2010-02-10 12:38:24
完成。谢谢你的回复。 – doctororange 2010-02-11 14:11:44