2
A
回答
4
使用這個表達式:
/^(true|false)$/
將測試字符串的開頭和結尾匹配^
和$
,分別,所以沒有別的可以是字符串(精確匹配)英寸
請參閱Regex101上的實況示例。
UPDATE(請參閱@ w0lf的評論):括號用於隔離true|false
子句,以便它們不會錯誤分組。 (這也使true
或false
匹配在第一個捕獲組中,但由於看起來只是匹配而沒有捕獲輸出,所以這應該沒有什麼區別)。
另外,如果你只是想匹配兩個值,Ruby中有更簡單的方法。 @SimoneCarletti建議一個。您也可以使用基本的==
或eql?
操作員。嘗試運行以下腳本來看到,這些所有的工作:
values = ["true", "false", "almosttrue", "falsealmost"]
values.each do | value |
puts value
# these three are all equivalent
puts "match with if" if value == "true" || value == "false"
puts "match with equals?" if (value.eql? "true") || (value.eql? "false")
puts "match with regex" if /^(true|false)$/.match value
puts
end
3
您需要使用^
和$
錨:
/^(true|false)$/
編輯:作爲卡里的評論中指出,該模式上面也會匹配碰巧包含一行true
或false
的多行字符串。爲了避免這種情況,使用分別匹配字符串的開頭和結尾的\A
和\z
分隔符:
/\A(true|false)\z/
2
試用
/^(true|false)$/
其中^是一條線,$結束的開始。
2
您可以使用
/^(true|false)$/
甚至更好
/\A(true|false)\z/
,將匹配字符串(而不是線)的起點和終點。如果你只需要匹配他的話,它可能是更有效地使用一個簡單的數組和include?
:
%w(true false).include?(value)
相關問題
- 1. 紅寶石正則表達式掛
- 2. 正則表達式和紅寶石
- 3. 使用正則表達式/紅寶石
- 4. 紅寶石正則表達式 - 陣列
- 5. 乾紅寶石正則表達式?
- 6. 單詞正則表達式紅寶石
- 7. 紅寶石正則表達式處理
- 8. 紅寶石正則表達式HH:MM
- 9. 紅寶石:瞭解正則表達式
- 10. 紅寶石 - 正則表達式
- 11. 紅寶石.split()正則表達式
- 12. 紅寶石正則表達式 - 這與#
- 13. 紅寶石正則表達式幫助
- 14. 紅寶石正則表達式從Rubular
- 15. 紅寶石轉義正則表達式
- 16. 紅寶石正則表達式返回
- 17. 紅寶石 - 在正則表達式
- 18. 正則表達式匹配紅寶石
- 19. 幫助正則表達式/紅寶石
- 20. 紅寶石正則表達式錯誤
- 21. 紅寶石報價正則表達式
- 22. 紅寶石多行正則表達式
- 23. 正則表達式匹配紅寶石
- 24. 搜索紅寶石陣列,正則表達式表達式
- 25. 翻譯紅寶石正則表達式PHP/Perl的正則表達式
- 26. 紅寶石正則表達式 - 需要更換正則表達式匹配
- 27. 評估%×()爲真或假的紅寶石
- 28. 方法紅寶石返回真或假
- 29. 正則表達式模式 - GSUB紅寶石
- 30. 紅寶石正則表達式來代替方程式
這還會匹配'truely'和'東西返回FALSE。 – GolfWolf
@ w0lf編輯說明。 –
感謝您的信息! – AlCode