Простой отрицательный взгляд в Postgres 9.5 не работает - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь сопоставить любую строку, содержащую STORE , когда за ней НЕ следует HOUSE .Я посмотрел на этот ответ Postgres Regex Negative Lookahead , но не смог заставить его работать с моим примером.

Вот демо sql и ниже мой код:

CREATE TABLE table1
    (s character varying)
;

INSERT INTO table1
    (s)
VALUES
    ('FROM THE STORE TO THE HOUSE AND'),
    ('FROM THE HOUSE TO THE STORE AND')
;
select * from table1 where s ~ '(STORE)(?!HOUSE)';

ОБНОВЛЕНИЕ Неправильная ссылка для демо SQL - это исправлено сейчас

1 Ответ

0 голосов
/ 25 октября 2018

Ваше регулярное выражение соответствует STORE только в том случае, если за ним сразу не следует HOUSE.

Я думаю, вы хотите:

(STORE)((?!HOUSE).)*$

Это будет соответствовать STORE во второмстрока вашего примера.

...