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

问题描述:

我需要查找一行中某个单词的所有匹配项,但搜索必须不区分大小写。我还需要添加到我的正则表达式中吗?在一行中查找不区分大小写的单词匹配

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

您需要修改/i

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

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

,更好地使用\b word边界,因为在你的正则表达式第二\s+空间,可以用于第一个\s+另一个匹配的单词;还您正则表达式的开头和行结束失败:

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

哇,这是很容易笑,我需要等待7分接受你的答案。谢谢。 – Flethuseo 2011-01-06 05:54:43