Gibt es etwas wie Look-ahead, Look-Behind in Oracle regulären Ausdruck wie ?<=
in einigen Sprachen?Look-Ahead in regulärem Ausdruck
Zum Beispiel wollen wir nur nach "ef" suchen, wenn es vorher "ab" und nicht "cd" ist.
In REGEXP_REPLACE
können wir dies tun, indem wir uns auf die n-te Gruppe beziehen, aber wie wäre es mit REGEXP_INSTR
und REGEXP_SUBSTR
?
Beispiel: sucht Position ef wenn es ein ABEF und nicht, wenn es eine cdef ist. Ich weiß, für dieses Beispiel können wir nach abef und um 2 Offset suchen, aber das ist ein einfacher Fall. Manchmal ist es nicht möglich zu versetzen. Ich habe kein gutes Szenario zur Hand, aber sagen wir: Suchen Sie nach ef nur wenn es vor 2 bis 5 mal die folgenden Zeichen a oder b oder 2 ([ab2]) {2,5}
Wenn es vor 'ab' ist, dann kann es nicht vor' cd' sein. – MT0
_before IT ist ab und nicht cd_. – Kenny
[Oracle Regex Geschmack ist POSIX] (https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm#i1007663), es unterstützt keine Lookarounds. –