Сочетание позитивного взгляда и негативного взгляда - Regex - PullRequest
0 голосов
/ 03 ноября 2018

Я пишу простое регулярное выражение в postgres 9.5, используя ~

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

CHANGE.+(?=SHOES.+(?!NIKE))

Вот мой ДЕМО и ниже пример моей проблемы:

MATCH:

CHANGE THE SHOES TO REBOOK.

НЕ СОГЛАСОВАНО:

CHANGE OF SHOES TO NIKE AIRS.

Ответы [ 2 ]

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

Вот решение, которое использует только один негативный взгляд:

SELECT *
FROM yourTable
WHERE col ~ 'CHANGE.+SHOES(?!.*NIKE)';

Если вы хотите получить точный ответ на свой вопрос, см. Ответ @ trincot.

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

.+ после SHOES является жадным, и поэтому (?! будет проверяться только в конце строки, где оно истинно (т. Е. Там нет NIKE), и, следовательно, нет возврата. .

Вместо этого сделайте это:

CHANGE.+(?=SHOES(?!.*NIKE))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...