我尝试匹配任何包含 STORE 且后面不跟 HOUSE 的字符串。我看了这个答案Postgres Regex Negative Lookahead但无法让它与我的示例一起工作。
这是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 演示的链接错误 - 现已修复
最佳答案
仅当您的正则表达式后面没有紧跟着 HOUSE
时,您的正则表达式才匹配 STORE
。
我猜你想要:
(STORE)((?!HOUSE).)*$
这将与示例第二行中的 STORE
匹配。
关于regex - Postgres 9.5 中的简单负向预测不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52993675/