Проблема здесь в подходе с разделением слов. Обычно слова состоят из букв, цифр или _
. В вашем примере -
не является словом char.
Поскольку ваши слова разделены пробелами, вы можете использовать
(?<!\S)(?!front)\S*end(?!\S)
См. Демоверсию regex .
Детали
(?<!\S)
- пробел или начало строки должны появляться сразу слева от текущего местоположения
(?!front)
- нет front
может появиться сразу справа от текущего местоположения
\S*
- 0 или более символов, кроме пробелов
end
- end
подстрока
(?!\S)
- пробел или конец строки должны появиться сразу справа от текущего местоположения.