ruby 正则表达式 "contains a word"

标签 ruby regex

在 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/

相关文章:

ruby - 指定一个任务具有多个依赖项

ruby-on-rails - 我刚刚部署了 discourse 应用程序,在 Heroku db :migrate. 期间出现错误,可能是 redis 无法连接

ruby - 查找卡普雷卡的电话号码

python 重新: r'\b\$\d+\b' won't match 'aug 12, 2010 abc $123'

javascript - 如何使用正则表达式从特定标记的属性中获取值?

regex - 提取特定术语 'hardrock'

javascript - Ruby on Rails 和 Javascript

ruby - 如何忽略参数化 Ruby 系统调用的输出

Oracle 数据库中的 REGEXP 挫败感

java - 正则表达式仅匹配最后一次出现的情况