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

Fle*_*seo 12 ruby regex

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

arr = line.scan(/\s+#{word}\s+/)
Run Code Online (Sandbox Code Playgroud)

Nak*_*lon 18

你需要修饰语 /i

arr = line.scan(/\b#{word}\b/i)
Run Code Online (Sandbox Code Playgroud)

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

而且最好使用\bword边界,因为第二个\s+在您的正则空间,这可以用于第一\s+另一匹配的单词; 你的正则表达式在行的开头和结尾都失败了:

> "asd asd asd asd".scan /\s+asd\s+/
=> [" asd "]
> "asd asd asd asd".scan /\basd\b/
=> ["asd", "asd", "asd", "asd"]
Run Code Online (Sandbox Code Playgroud)