Подтвердить что ты не робот

Найдите совпадения слов без учета регистра в строке

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

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

Ответ 1

Вам нужен модификатор /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"]