如何在oracle regexp_like()中做一个负面的lookahead(),'?!'不工作
查询:如何在oracle regexp_like()中做一个负面的lookahead(),'?!'不工作
select 1 "val" from dual where regexp_like('ITEM HEIGHT','^(?!ICON).*HEIGHT$');
上面的查询不返回我1
。请让我知道如何使用oracle regexp_like()
实现负向预测。
注意:请不要在查询中提出任何更改,我有兴趣知道regexp_like()
接受负面预测的正确正则表达式。另外[^]似乎只是按字符否定字符,而不是整个字符串。
Oracle不支持前瞻正则表达式 - 而不是你可以检查下一个字符不是要排除一个:
select 1 "val"
from dual
where regexp_like('ac','a([^b]|$)');
[^]仅用于否定单个字符。如果我想否定一个字符串呢? 从双重选择1“val”,其中regexp_like('ICON HEIGHT','^([^ ICON]。* HEIGHT)');不符合我否定'ICON HEIGHT'的目的,因为它不是以单个字符串逐个字符。这有什么解决方案? – user2907301
从regexp_like('IA HEIGHT','^([^ ICON]。* HEIGHT)')中选择1“val”应该返回我1,但它不会因为^只会否定单个字符。 – user2907301
不知道这是否是你想要的,但如果你想为了否定值,请尝试:'a [^ b]' –
Oracle Regexp不支持超前观察。 –
我的疑问是如果我不得不排除一个字符串而不是一个字符? – user2907301