正则表达式否定前瞻不排除必需的字符串

时间:2018-05-18 09:04:07

标签: sql regex netezza

美好的一天

我一直在尝试在Netezza SQL中的regex_like函数中应用特定的排除: regexp_like(trim(upper(a.MRCH_NME)),'\ bMAKRO \ s?(?!DEBTORS)',' I')

不幸的是我无法得到表达式来排除“DEBTORS”。有人能帮助我找到我的错误吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

以下是您的模式的一个快速解决方法:

\bMAKRO\s(?!DEBTORS)

代码:

regexp_like(trim(upper(a.MRCH_NME)),'\bMAKRO\s(?!DEBTORS)','i')

您当前模式允许MAKRO DEBTORS WOODME通过的原因是它可以将\s视为可选,然后断言DEBTORS不会立即跟随MAKRO。< / p>

Demo

修改

你也可以稍微改写你的负向前瞻:

\bMAKRO(?!\s?DEBTORS)