zwei reguläre Ausdrücke zusammenführen

8

Ich habe zwei reguläre Ausdrücke, einen, der Benutzernamen aus einer CSV-Zeichenfolge herauszieht, und den anderen, der E-Mails herauszieht.

Das Zeichenfolgenformat ist wie folgt:

%Vor%

Der Code für meine regulären Ausdrücke ist so.

%Vor%

Ich habe mehrere Gedanken über das Zusammenführen von Regexen gefunden, aber aus den Antworten konnte ich nicht herausfinden, wie man meins zusammenführt.

meine Ausdrucke zeigen:

%Vor%

würde ich in der Lage sein das gleiche von einem single matcher mit einem Regex auszudrucken?

obs: Das ist eine Schulaufgabe, was bedeutet, dass ich sie nicht "verschmelzen" oder mehr tun muss, aber ich würde gerne wissen, ob es möglich ist und wie schwierig es wäre.

    
KristianMedK 12.10.2012, 11:30
quelle

2 Antworten

10

Sie können einfach ein Pipe (|) zwischen Ihrem multiple Regex verwenden, um alle zu vergleichen: -

%Vor%

AUSGABE :

%Vor%

AKTUALISIEREN :

Wenn Sie username und email nur dann drucken möchten, wenn beide vorhanden sind, müssen Sie die Zeichenfolge in ; aufteilen und anschließend die folgende Regex auf jede davon anwenden.

Hier ist der Code: -

%Vor%

AUSGABE :

%Vor%     
Rohit Jain 12.10.2012, 11:47
quelle
1

Der folgende Code extrahiert Ihre Paare. Die Regex ist ziemlich kurz, aber ich bin mir fast sicher, dass es einen eleganteren Weg gibt (es gibt immer einen Regex!). ;)

%Vor%

Ausgabe:

  

username2 [email protected]
  username3 [email protected]

Erklärung für die Regex "\(([^\)]+)\)\s<([^>]+)>" :

  • \(([^\)]+)\) : Eine Gruppe von ) -Zeichen eingeschlossen von ( und )
  • \s : Ein Leerzeichen zwischen
  • <([^>]+)> : Eine Gruppe von > -Zeichen eingeschlossen von < und >
brimborium 12.10.2012 12:59
quelle

Tags und Links