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!
Kommentare zum Beitrag "Groß-Kleinschreibung in Regular Expression ändern"
Kommentar von Martin
Funktioniert allerdings mit einem Haken:
Buchstaben hinter äöü werden auch in Großbuchstaben umgewandelt.
Vlt gibt es da noch was schlaueres als \b .