Hallo allerseits, ich stehe bei Perl Regular Expressions grad auf dem Schlauch... Ich möchte prüfen, ob in einem String eine bestimmte Zeichenkombination vorkommt, vorher/nachher darf alles sein nur kein a-z. Woran ich scheitere ist dass die Kombination auch ganz am Anfang oder ganz am Ende vorkommen darf. Beispiel: ich suche "XXX" abc-xxx-4711 passt abc-xxxy-123 passt nicht (wegen dem y) abc-xxx08156 passt (eine Ziffer nach xxx ist ok) xxx-4711 passt abc123-xxx passt Eigentlich bietet sich ja das \b als "word boundary" an, nur geht das in meinem Fall nicht, weil ich in dem Fall ein anderes Verständnis für "word" habe als Perl. Für Perl ist \w ein [A-Za-z0-9_], in meinem Fall aber nur [A-Za-z] Ohne "ganz am Anfang" und "ganz am Ende" ists einfach: [^a-z]xxx[^a-z] (Groß/Kleinschreibung mal der einfachheit halber weggelassen) Wie mach ich das? Vermutlich wäre die Lösung: wie schreibt man \b ohne \b (also quasi "zu Fuß") ?
Yalu X. schrieb: > Probier mal das: > >
1 | > (^|[^a-z])xxx([^a-z]|$) |
2 | > |
Danke, Funktioniert! Menn mans mal gesehen hat, ist es eh logisch... ich hab mich total durch diese "zero-width lookaround assertions" verwirren lassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.