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