Postgres 9.5 中的简单否定前瞻不起作用

Simple Negative Lookahead in Postgres 9.5 Not Working

我试图匹配任何包含 STORE 的字符串,但它后面没有跟 HOUSE。我查看了这个答案 但无法让它与我的示例一起使用。

这是 sql demo 下面是我的代码:

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 演示错误 link - 现在已修复

您的正则表达式匹配 STORE 只有当它后面没有紧跟着 HOUSE

我猜你想要:

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

这将匹配示例第二行中的 STORE