【问题标题】:Simple Negative Lookahead in Postgres 9.5 Not WorkingPostgres 9.5 中的简单负前瞻不起作用
【发布时间】:2019-03-30 07:49:10
【问题描述】:

我正在尝试匹配任何包含 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 演示的链接错误 - 现在已修复

【问题讨论】:

    标签: regex postgresql postgresql-9.5 negative-lookahead


    【解决方案1】:

    您的正则表达式匹配STORE,前提是它没有紧跟HOUSE

    我猜你想要:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2017-04-22
      • 2017-10-08
      • 1970-01-01
      相关资源
      最近更新 更多