如何對正則表達式的字符串,如果整個字符串匹配(而不是子字符串)將返回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