ruby - 在一行中查找不区分大小写的单词匹配项

标签 ruby regex

我需要查找一行中出现的所有单词,但搜索必须不区分大小写。我还需要向我的正则表达式添加什么?

arr = line.scan(/\s+#{word}\s+/)

最佳答案

你需要修饰符/i

arr = line.scan(/\b#{word}\b/i)

http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm

最好使用 \b 作为单词边界,因为正则表达式中的第二个 \s+ eats 空格,可用于另一个匹配词的第一个\s+;您的正则表达式在行首和行尾也失败:

> "asd asd asd asd".scan /\s+asd\s+/
=> [" asd "]
> "asd asd asd asd".scan /\basd\b/
=> ["asd", "asd", "asd", "asd"]

关于ruby - 在一行中查找不区分大小写的单词匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612128/

相关文章:

javascript - 表单 Jquery 函数

ruby-on-rails - Capistrano 和 Carrierwave

MySql - 结合 REGEXP 和 BETWEEN 函数

Javascript 正则表达式的模式不起作用

php - 检查字符串是否以 php 中的特定单词结尾?

ruby-on-rails - 如何在 Ruby 中将年份数组转换为月份数组?

ruby - 使用 ruby​​ 的特定 dom 元素的屏幕截图

ruby - 在什么情况下Linux epoll_wait会返回epoll_events结构体并带有空的events字段?

php - 在 mysql REGEXP 查询中转义单引号

python - 如何使用正则表达式查找字符串中的重复字符