Найти нечувствительные к регистру совпадения слов в строке - PullRequest
11 голосов
/ 06 января 2011

Мне нужно искать все вхождения слова в строке, но поиск должен быть без учета регистра.Что еще мне нужно добавить к моему регулярному выражению?

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

1 Ответ

16 голосов
/ 06 января 2011

Вам нужен модификатор /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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...