我需要在一行中查找所有出现的单词,但搜索必须不区分大小写。我还需要在正则表达式中添加什么?
arr = line.scan(/\s+#{word}\s+/)
答案 0 :(得分:16)
您需要修饰符/i
arr = line.scan(/\b#{word}\b/i)
http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm
最好将\b
用于字边界,因为正则表达式中的第二个\s+
吃空格,可用于第一个\s+
另一个匹配的词;你的正则表达式在行的开头和结尾都失败了:
> "asd asd asd asd".scan /\s+asd\s+/
=> [" asd "]
> "asd asd asd asd".scan /\basd\b/
=> ["asd", "asd", "asd", "asd"]