在 Ruby 中,如何编写正则表达式来检查提交的单个单词?
假设我有一个接受文本的 Web 表单。我知道如果我想看看句子 --only-- 是否包含 "join"我可以使用
if the_body == "join"
但这只有在整个文本提交都是“加入”时才有效。
如何捕捉这样的提交:
“我想加入你们的俱乐部?”或者 “请加入我”
谢谢!
最佳答案
你可以这样做
string =~ /join/i
# /i makes it case insensitive
或
string.match(/join/i)
关于性能评论的一点更新:
>> s = "i want to join your club"
>> n = 500000
=> 500000
>> Benchmark.bm do |x|
.. x.report { n.times { s.include? "join" } }
.. x.report { n.times { s =~ /join/ } }
.. end
user system total real
0.190000 0.000000 0.190000 ( 0.186184)
0.130000 0.000000 0.130000 ( 0.135985)
虽然速度差异在这里并不重要,但正则表达式版本实际上更快。
关于 ruby 正则表达式 "contains a word",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769733/