Hallo zusammen! Ab und zu brauche ich mal Regular Expressions (REs), die nicht total trivial sind wie ".*\.jpe?g" (= Shellpattern *.jpg und *.jpeg). Dabei kann man eigene Zeichenklassen nutzen, wie z.B. "[A-Ma-m]" (passt nur aufs halbe Alphabet) oder "[^A-Ma-m]" (passt zur anderen Haelfte). Es gibt fuer POSIX/Linux auch vordefinierte Klassen wie "alpha", "lower", "space", "print" usw. (--> man 7 regex) mit folgenden Vorteilen: o man muss es nicht jedesmal selber zusammenstoppeln o sie sind 'sprechend', somit lesbarer und verstaendlicher o sie beruecksichtigen Erweiterungen durch die jeweilige "locale" (Sprache usw. --> man 7 locale), z.B. im Deutschen: Umlaute und 'Ess-Zett' Wenn's drauf ankommt -- und das tut es bei REs meistens ;-) -- dann musz man etwas genauer wissen, _welche_ Zeichen zu so einer vordefinierten Klasse gehoeren. Die relevanten "manpages" sind ziemlich krude, weil dort fast nur wechsel- seitige Definitionen geboten werden, die sich z.T. sogar widersprechen. Per Google konnte ich auch nur solche vereinfachten Beschreibungen finden, die zwar verstaendlich und 'logisch', aber [mir] zu ungenau sind. Ich habe deswegen etwas Arbeit in eine kleine und kompakte Tabelle gesteckt, die mir fortan als Uebersicht dient; sozusagen ein Spickzettel. In der Hoffnung, dasz das Ergebnis auch fuer Andere hilfreich ist -- die anwesenden Gurus mal ausgenommen -- habe ich es ins LinuxWiki* gesteckt: <werbung> http://linuxwiki.de/PosixZeichenklassen </werbung> *) http://linuxfaq.de (von Jens Benecke) ist im LinuxWiki aufgegangen weitere Links zu REs: o Kurzerklaerung (steigt sinnigerweise nicht allzutief in die Materie) http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck o Perl-REs, "die volle Packung" ;-) http://wiki.perl-community.de/bin/view/Perldoc/perlreref Viele Gruesze, Patrick -- zu Googles neuem Dienst "Search History": "Man muss sehr gute Computerhygiene pflegen, um das zu nutzen" -- Marissa Mayer, Google - Abt. konsumentenorientierte Webprodukte [http://www.spiegel.de/netzwelt/technologie/0,1518,352773,00.html]
Teilnehmer (1)
-
Patrick Willam