reguläre Ausdrücke lower-case
Paul Brunner
- php
Hallo,
Folgender regulärer Ausdruck soll ein Wort am Satzanfang identifizieren, daß 5 Buchstaben lang oder kürzer ist.
preg_replace("/(.|:|!|?) ([A-ZÖÄÜ]{1}[a-zöäüß]{1,4})\b/", " $2", $string)
Ich möchte dieses Wort durch sein kleingeschriebenes Pondente ersetzen. Also aus ". Hier" wird " hier". Geht das?
Gruß
Paul
Hi Paul,
Ich möchte dieses Wort durch sein kleingeschriebenes Pondente
Mit dem /e Modifier hast Du die Möglichkeit Funktionen als Ersetzung aufzurufen. Das Weitere ist dann kein Problem mehr.
preg_replace("/(.|:|!|?) ([A-ZÖÄÜ]{1}[a-zöäüß]{1,4})\b/e", ucfirst('\2'), $string)
Grüße Oesi
ucfirst war Blösdinn
strtolower ist das Richtige
Grüße Oesi
Hallo Oesi,
Mit dem /e Modifier hast Du die Möglichkeit Funktionen als Ersetzung aufzurufen. Das Weitere ist dann kein Problem mehr.
Danke, das mir dem e-Modifier war neu für mich.
preg_replace("/(.|:|!|?) ([A-ZÖÄÜ]{1}[a-zöäüß]{1,4})\b/e", strtolower('\2'), $string)
Irgendwie scheint das mit dem einbinden des Musterschnipsels nicht richtig zu gehen. Was bedeutet '\2' ?
Gruß
Paul
P.S.: Hoffentlich findet hier unten nochmal jemand mein Frage ;-)
Im Vorteil ist, wer Dokumentationen lesen kann (oder weiss wo er suchen muss) ;-)
So gehts:
preg_replace("/(§|.|:|!|?)[\n\r\ ]*([A-ZÖÄÜ]{1}[a-zöäüß]{1,5})\b/e", " strtolower(${2});", $string);
für php ist die Notation für die backreference nicht \2 sondern ${2}
Danke für den richtigen Anstoß
Paul