Регулярное выражение для выбора слов, оканчивающихся на 'ing', если - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу выбрать слова, заканчивающиеся регулярным выражением, но я хочу исключить слова, заканчивающиеся на thing. Например:

everything
running 
catching 
nothing

Из этих слов должны быть выбраны бег и ловля, все и ничего не должно быть исключено.

Я пробовал следующее:

.+ing$

Но это все выбирает. Я думаю, что смотреть вперед / смотреть вокруг может быть решением, но я не смог получить тот, который работает.

Решения, которые работают в Python или R, будут полезны.

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Что-то вроде \b\w+(?<!th)ing\b возможно.

0 голосов
/ 13 ноября 2018

Вы также можете использовать отрицательный взгляд (?!, чтобы утверждать, что справа не 0+ раз слово символ, за которым следует thing и граница слова:

\b(?!\w*thing\b)\w*ing\b

Regex demo | Python demo

0 голосов
/ 13 ноября 2018

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

^.*(?<!th)ing$

RegEx Demo

(?<!th) - это отрицательное выражение для поиска за спиной, которое не будет соответствовать, если th предшествует ing в конце строки.

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

\w+(?<!th)ing\b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...