【发布时间】:2016-04-24 09:22:43
【问题描述】:
Oracle的正则表达式如?<=在某些语言中是否有look-ahead、look-behind之类的东西?
例如,我们只想查找“ef”,前提是它之前是“ab”而不是“cd”。
在REGEXP_REPLACE 中,我们可以通过引用第n 组来做到这一点,但是REGEXP_INSTR 和REGEXP_SUBSTR 呢?
示例:如果 ef 是 abef 则查找 ef 的位置,而不是 cdef 时。我知道对于这个例子,我们可以寻找 abef 并偏移 2,但这是一个简单的例子。有时无法抵消。我手头没有一个好的场景,但是让我们说:仅在 ef 是以下字符 a 或 b 或 2 ([ab2]){2 的 2 到 5 倍之前寻找,5}
【问题讨论】:
-
如果在
ab之前,则不能在cd之前。 -
在 IT 是 ab 而不是 cd 之前.
-
Oracle regex flavor is POSIX,它不支持环视。
标签: sql regex oracle oracle11g lookahead