Ich versuche, eine Oracle-Abfrage mit REGEXP_LIKE
zu bauen alle Datensätze zu finden, die die Nummer 68 in den Klammern nach dem Wort „etwas“ enthält: something:(...)
Regex bestimmten Text zwischen bestimmten Klammern finden
So sind die folgenden Strings
- andere: (45 oder 1) etwas: Meine Suche sollten übereinstimmen (78 oder 68 oder 5)
- etwas: (68 oder 5) Sache: (57)
- einige: (888) etwas: (68) Sache: (57)
Diese Strings sollten nicht meiner Suche gefunden:
- etwas: (5) Sache: (68)
- etwas :()
Ich bin versuchen das:
^.*?something:\((.*68.*)\).*$
Aber das sucht 68 bis zum Ende des Textes und passend auch 668.
Dank
Es hat funktioniert, danke Wictor! Eine Sache, die ich nicht verstanden habe: '([^)] * [^ 0-9)])?' ... also sucht man nach 0+ char außer ')' ... ** UND ** 1 Zeichen außer der Ziffer gefolgt von ')'? Also der zweite Teil erfordert ein Char vor 68? – qxlab
@qxlab '([^)] * [^ 0-9)])?' Ist eine optionale Erfassungsgruppe '(...)?', Die 1 oder 0 Vorkommen der Sequenz von Mustern innerhalb der Gruppe entspricht. Es entspricht 0+ Zeichen außer ')' gefolgt von einem beliebigen Zeichen außer einer Ziffer und ')' - dh 68 'wird entweder mit '(' oder '(... [NON-DIGIT und NON-)] vorangestellt '. –