Использование
str.split(/\.(?!asd\b)/)
Шаблон \.(?!asd\b)
соответствует любой точке, за которой не следует asd
, за которой следует граница слова. (?!asd\b)
- это отрицательный прогноз , который не может найти совпадение, если шаблон прогнозирования сразу находит совпадение справа от текущего местоположения.
В случае, если «слово» оканчивается точкой или концом строки, используйте
str.split(/\.(?!asd(?:\.|\z))/)
где (?:\.|\z)
- группа без захвата, соответствующая либо точечному (\.
), либо (|
) концу строки (\z
).
См. Демонстрационную версию Ruby и демонстрационную версию regex .