Исключение RegExp, поиск слова, за которым не следует другое - программирование
Подтвердить что ты не робот

Исключение RegExp, поиск слова, за которым не следует другое

Я пытаюсь найти все вхождения "Тома", за которыми не следует "Thumb".

Я попытался найти

Tom ^((?!Thumb).)*$

но я все равно получаю строки, соответствующие Tom Thumb.

4b9b3361

Ответ 1

Вы не говорите, какой вкус регулярного выражения вы используете, но это должно работать в целом:

 Tom(?!\s+Thumb)

Ответ 2

Если вы не ищете целые слова, вы можете использовать следующее регулярное выражение:

Tom(?!.*Thumb)

Смотрите это демо-версия regex

Если вы ищете целые слова (т.е. целое слово Tom следует сопоставлять только в том случае, если целое слово Thumb находится справа от него), используйте

\bTom\b(?!.*\bThumb\b)

Смотрите еще одну демонстрацию regex

Обратите внимание, что:

  • \b - соответствует границе верхнего/нижнего слова
  • (?!.*Thumb) - это отрицательный результат, который не соответствует совпадению, если есть какие-либо символы 0+ (в зависимости от двигателя, включая/исключая символы строки), а затем Thumb.

Ответ 3

Tom(?!\s+Thumb) - это то, что вы ищете.