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
。
我试图匹配任何包含 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
。