Ich bin gestern auf ein kleines Problem gestoßen. Ich musste einige Benutzer stapelweise verarbeiten. Das Format der von der Rezeption gesendeten Benutzer war wie folgt: Ich wollte den Inhalt zwischen den Klammern extrahieren.
Lehrer 10(0010)
Lehrer 11(0011)
Lehrer 9(009)
Lehrer 12(0012)
Lehrer 13(0013)
Lehrer 14(0014)
Ursprünglich wollte ich dafür Javas String.split() und substring() verwenden, aber es war mühsam, es mehrmals zu verarbeiten, also habe ich reguläre Ausdrücke verwendet. Obwohl ich die Syntax fast vergessen habe, halte ich es für bequemer, Behauptungen zu verwenden (der Schlüssel besteht darin, zu hoffen, dass die Ergebnisse keine Klammern enthalten). Öffnen Sie RegexBuddy und probieren Sie es aus. Es ist ganz einfach:
Das Folgende ist der Java-Implementierungscode:
Abschließend sind hier die verwendeten Behauptungen mit der Breite Null:
breite Behauptung | (?=exp) | Passen Sie die Position vor exp an |
---|---|---|
(?<=exp) | Passen Sie die Position nach exp an | |
(?!exp) | Entspricht einer Position, auf die kein exp folgt | |
(?<!exp) | Passen Sie die Position an, der kein exp vorangestellt ist |