2016-05-04 6 views
1

Ich kann nicht so hier sqlfiddle Arbeit zu machen erreichen, ist mein einfacher Code:Erhalten zweite Vorkommen mit REGEXP_SUBSTR

select REGEXP_SUBSTR(' EG SUZ SG SIN blabla ', '^(\s?[A-Z]{2} [A-Z]{3}\s?){2}') from dual; 

ich SG SIN erhalten mag. Ich weiß REGEXP_SUBSTR einen Parameter bekam die n-te Auftreten erhalten verwendet, aber wenn ich

select REGEXP_SUBSTR(' EG SUZ SG SIN blabla ', '^(\s?[A-Z]{2} [A-Z]{3}\s?){2}'),1,2) from dual; 

schreiben es gibt nichts zurück und 1,1 kehrt EG SUZ SG SIN so meine Vermutung ist, dass das Auftreten nicht richtig aufgeteilt ist, aber ich weiß nicht, warum, kannst du mir erklären?

+0

ich es jetzt nicht versuchen kann, so bin ich das Hinzufügen einfach einen Kommentar. Sie können versuchen, die {2} aus der Regex zu entfernen, und versuchen Sie dann die REGEXP_SUBSTR (.... 1, 2). Ich glaube, das sollte funktionieren. –

+0

@tamasrev, die nicht funktioniert. Ich habe auch versucht, die erste \ s zu löschen? aus der passenden Gruppe mit und ohne {2} – So4ne

+0

in Ihrem ersten Regex sollte es 'REGEXP_SUBSTR wählen ('EG SUZ SG SIN blabla', '^ (\ s [AZ] {2} [AZ] {3} \ s?) {2} ') von Dual; ' – rock321987

Antwort

1

wird diese

arbeiten
select REGEXP_SUBSTR(' EG SUZ SG SIN blabla ', '([A-Z]{2} [A-Z]{3}(\s|$))', 1, 2) from dual; 
+0

Ja danke ... Kannst du erklären warum die '^' Blöcke? da es nicht in der() Gruppe ist – So4ne

+0

'^' ist Anker, der das Beginnen der Zeichenkette markiert. Sie können die ganze Zeichenkette mit dem gegebenen Muster unter Verwendung der Zählung erhalten, die im oracle verfügbar ist – rock321987

+0

Um zu klären, gibt Ihnen diese Antwort das 2. Auftreten einer Gruppe von zwei Großbuchstaben, gefolgt von einem Leerzeichen, gefolgt von drei Großbuchstaben, gefolgt von einem Leerzeichen (kein Druck) (Leerzeichen, Tabulator und Seitenvorschub usw.) oder dem Ende der Zeile. Wenn das Muster nicht gefunden wird, wird NULL zurückgegeben. Stellen Sie sicher, dass dies genau den Teil der Zeichenfolge und des Textes beschreibt, nach dem Sie suchen, da es sehr spezifisch ist. –

Verwandte Themen