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

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

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+会占用空格,这可以用于另一个匹配单词的第一个\s+ ; 你的正则表达式在行的开头和结尾都失败了:

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