【问题标题】:Oracle REGEXP_LIKE - search string not followed by specific characterOracle REGEXP_LIKE - 搜索字符串后不跟特定字符
【发布时间】:2017-05-26 17:19:10
【问题描述】:

我正在寻找在 Oracle 中使用 REGEXP_LIKE 匹配不跟一个字符但后面可以跟 0 个或多个任何其他字符的字符串。 例如,如果我有这些记录:

ABCD
ABCDE
ABCDGH
ABCDF
ABCDUYR

除了 ABCDE 之外,我需要得到所有的东西

我试过REGEXP_LIKE(column,'^ABCD[^E]') 但这也省略了 ABCD。 请帮忙。

谢谢!

【问题讨论】:

    标签: sql regex oracle plsql regex-negation


    【解决方案1】:

    要排除包含E 后跟ABCD 的字符串,请使用

    REGEXP_LIKE(col,'^ABCD([^E]|$)')
    

    ^ABCD([^E]|$) - ABCD 后跟除 E 或字符串 ABCD 以外的任何字符,之后没有其他字符。

    【讨论】:

      【解决方案2】:

      试试这个:

       REGEXP_LIKE(column,'^ABCD[^E]*')
      

      * 匹配零个或多个字符

      【讨论】:

      • 这也会返回ABCDE
      • ...另一方面,它会拒绝它不应该拒绝的 ABCDJKE。
      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      相关资源
      最近更新 更多