Artikel im Internet unter http://www.hidemail.de/blog/gross-kleinschreibung-regular-expression.shtml.
Sonntag, 18.2.2007, 15:10:21 Uhr

Groß-Kleinschreibung in Regular Expression ändern


Folgendes Beispiel ist für mich mehr eine "Spielerei", aber immerhin interessant genug, sie zu beschreiben.

Also, die Aufgabenstellung wäre angenommener Weise:

Wandle

"dies ist ein test zum umwandeln von zeichen"

in

"Dies Ist Ein Test Zum Umwandeln Von Zeichen"

oder anders gesagt:
Alle Anfangsbuchstaben der Wörter in Großbuchstaben ändern.


$t="dies ist ein test zum umwandeln von zeichen";
$t=~ s/(\b)([a-z])/\1\u\2/g;
print $t;



Ausgabe ist wie gewünscht.

Wie geht das?
\b ist ein reserviertes Zeichen, das für alle "Wortbegrenzungszeichen" gilt, unter anderem für Zeilenanfang, Zeilenende und Leerzeichen.
Es wird also gesucht nach einem solchen Wortbegrenzer gefolgt von einem kleinen Buchstaben.
Ausgegeben wird dann dieser Wortbegrenzer, und danach wird per \u der gefundene Buchstabe in groß gewandelt und ausgegeben.
Nett, gell?

Anstatt des \u gibt es noch folgende Anweisungen:
\l (kleines L)
Nächstes Zeichen klein

\u
Nächstes Zeichen groß

\L
Alles klein bis \E

\U
Alles groß bis \E

\E
Endkennzeichnung

Wie immer ist auch hier zu sagen: Das Ganze klappt nur mit dem amerikanischen Zeichensatz, Umlaute wie äöü bleiben wie sie sind!



Artikel im Internet unter http://www.hidemail.de/blog/gross-kleinschreibung-regular-expression.shtml.