2017-07-11 4 views
0

Ich verwende http://www.rubular.com/, um zu prüfen, wieviel Musterabgleichung funktioniert. Wenn ich Text wie AND TO_CHARCREATE_TS, 'yyyymmdd' = '20140810' habe, erlaubt die Regex AND TO_CHARCREATE_TS, yyyymmdd = '(.*?)' mir, den Zeitstempel zu extrahieren. Wenn jedoch Klammern wie AND (TO_CHAR(CREATE_TS, 'yyyymmdd') = '20140810') eingeführt werden, kann ich meine Regex nicht abrufen, um den Zeitstempel zu extrahieren. Jede Hilfe wird geschätzt.Regex - wie man Text in Anführungszeichen innerhalb der Klammer notiert

+1

können Sie uns 8 Ziffern wird übereinstimmen zeigen die Code, den Sie geschrieben haben, um dies zu tun? Ich meine, was hast du bisher versucht? – Nerazzurri

+0

Konnten Sie es zur Arbeit bringen? –

Antwort

2

Wenn sich die Klammern in der Zeichenfolge befinden, die Sie suchen, müssen sie mit '\' versehen werden, damit sie übereinstimmt.

AND \(TO_CHAR\(CREATE_TS, 'yyyymmdd'\) = '(.*?)'\) 

das Beispiel

AND (TO_CHAR(CREATE_TS, 'yyyymmdd') = '20140810') 

Auch entsprechen, je nachdem, was sonst in der Abfrage wird auf die Sie passen, können Sie in der Lage sein, die Regex zu vereinfachen nur zitiert Zeitstempel wie zu packen dies:

'(\d{8})' 

, die innerhalb der Apostrophe

Verwandte Themen