regex - Postgres 9.5 中的简单负向预测不起作用

标签 regex postgresql postgresql-9.5 regex-lookarounds

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

相关文章:

postgresql - Postgres 选择了一个错误的查询计划

sql - 更新 PostgreSQL 中的下限和上限

arrays - 如何在 Postgres 中过滤 JSON 数组

用于汇编样式十六进制数字的 C# 正则表达式

python - 尝试让 python RegEx 删除括号 [ abc ] 之间的所有内容

sql - 更新以从逗号分隔列表中删除重复项

mysql - JDBC 的 Solr 数据导入配置

json - 更新 postgres json 中数组中的每个值

php - 字母后的正则表达式数字

regex - 需要对正则表达式进行分组