linux-l: regexpr
Steffen Dettmer
steffen at dett.de
Sa Sep 8 18:03:58 CEST 2001
* Ulrich Wiederhold wrote on Sat, Sep 08, 2001 at 00:55 +0200:
> > $file =~ s/([\s\(_][a-z]{0,1})/uc($1)/ge;
>
> Fast. Allerdings wird der 1. Buchstabe im 1. Wort nicht großgeschrieben.
Ich hab:
$file = "(This Artist)_-_04 - It´s a better Live without winDows.mp3";
$file = lc($file);
$file =~ s/(^|\s+)([a-z])/uc($1)/ge;
print "$file\n";
Also: groß nach Zeilenanfang oder nach whitespace (\s+). Wenn
auch Unterstriche "whitespaces" sind, dann eben:
$file =~ s/(^|[\s_]+)([a-z])/$1 . uc($2)/ge;
Aber blöd, denn Wortanfang ist nicht so einfach zu definieren.
"'" ist kein Zeichen vorm Wortanfang, "(" schon.
Ich würde vermutlich:
$file =~ s/(
^ #Zeilenanfang
| #oder
[^a-z'`´] #nicht-Wortzeichen
| #oder
_ #Unterstrich
)
([a-z]) #gefolgt von Buchstaben
/$1 . uc($2)/xge;#tauschen gegen Vorzeichen und großem Buchstaben
Schreiben. Kann man dann auch lesen :)
oki,
Steffen
--
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.
Mehr Informationen über die Mailingliste linux-l