snip - Perl Codeschnipsel
Peter J. Holzer
hjp at wsr.ac.at
Mon Nov 22 04:02:10 CST 1999
On 1999-11-20 11:14:48 +0100, Roland Bauer wrote:
> Converting a string to uppercase
>
> Angenommen, man möchte folgenden String auf Großbuchstaben umwandeln:
>
> $_ = "teststring";
>
> ACHTUNG: Umlaute werden nicht berücksichtigt ...
Das sollte rein theoretisch gehen, wenn man
use locale;
verwendet (und das System locales unterstützt und die entsprechenden
Environment-Variablen gesetzt sind).
Allerdings funktioniert es bei mir weder unter Redhat Linux 6.0 noch
unter HP-UX 10.20 - in C-Programmen aber schon :-(
> tr/a-z/A-Z/;
Bei Ranges hat man allerdings immer das Problem, daß man dann wissen
muß, welcher Zeichensatz verwendet wird. Obiges funktioniert nur in
ASCII. In POSIX-Regexps gibt es eine (ziemlich häßliche) Syntax für
Character-Classes, z.B.:
grep '[[:upper:]][[:lower:][:digit:]]'
gibt alle Zeilen aus, in denen ein Großbuchstabe von einem
Kleinbuchstaben oder einer Ziffer gefolgt wird.
So etwas scheint es in Perl nicht zu geben.
> Not recommended ...
>
> s/[a-z]/uc $&/eg;
Wie wär's mit
s/.*/\U$&\E/;
hp
--
_ | Peter J. Holzer | Nobody should ever have to be
|_|_) | Sysadmin WSR / Obmann LUGA | ashamed if they have a secret love
| | | hjp at wsr.ac.at | for writing computer programs that
__/ | http://wsrx.wsr.ac.at/~hjp/ | actually work. -- Donald E. Knuth
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 371 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/19991122/a78d9c19/attachment.bin
More information about the Vienna-pm
mailing list