Zeichenketten
Wurzelzwerg
- perl
Hallo allerseits,
ich benötige nochmal Eure Hilfe. Kann mir bitte jemand zeichen, wie man mit Perl am effektivsten aus einer Zeichenkette alle Zeichen entfernt, die keine Buchstend und keine Ziffern sind? Das müßte ja mit regulären Ausdrücken ganz gut gehen, ich weiß nur nicht, wie :(
viele Dank schonmal
gudn tach!
Kann mir bitte jemand zeichen, wie man mit Perl am effektivsten aus einer Zeichenkette alle Zeichen entfernt, die keine Buchstend und keine Ziffern sind? Das müßte ja mit regulären Ausdrücken ganz gut gehen, ich weiß nur nicht, wie :(
perldoc perlre
da steht so einiges.
und fuer das, was du machen moechtest, ist auch die deutschsprachige hilfe von selfhtml (http://de.selfhtml.org/perl/sprache/regexpr.htm) ausreichend.
s/[^a-zA-Z0-9]+//g
prost
seth
Hallo Wurzelzwerg,
Kann mir bitte jemand zeichen, wie man mit Perl am effektivsten aus einer Zeichenkette alle Zeichen entfernt, die keine Buchstend und keine Ziffern sind? Das müßte ja mit regulären Ausdrücken ganz gut gehen, ich weiß nur nicht, wie :(
Ich würde Folgendes vorschlagen:
$zeichenkette =~ s/[[:alnum:]]+//g;
Das ersetzt alle Buchstaben (nicht nur "a" bis "z" und "A" bis "Z") und die Ziffern 0 bis 9 durch "nichts".
MffG
EisFuX
Hallo EisFuX, (yep, ich korrigiere mich mal selbst ;-)
Kann mir bitte jemand zeichen, wie man mit Perl am effektivsten aus einer Zeichenkette alle Zeichen entfernt, die keine Buchstend und keine Ziffern sind? Das müßte ja mit regulären Ausdrücken ganz gut gehen, ich weiß nur nicht, wie :(
Ich würde Folgendes vorschlagen:
$zeichenkette =~ s/[[:alnum:]]+//g;
> Das ersetzt [alle](http://perldoc.perl.org/perlre.html#%5b3%5d) Buchstaben (nicht nur "a" bis "z" und "A" bis "Z") und die Ziffern 0 bis 9 durch "nichts".
Soweit, so gut, wir wollten aber alle anderen Zeichen entfernen (also durch "nichts" ersetzen), daher:
~~~perl
$zeichenkette =~ s/[^[:alnum:]]+//g;
MffG
EisFuX
gudn tach!
Ich würde Folgendes vorschlagen:
$zeichenkette =~ s/[[:alnum:]]+//g;
Das ersetzt alle Buchstaben
erstens muesste das noch negiert werden, um die aufgabenstellung zu erfuellen (ok, das waere nicht schwierig). aber zweitens ist der posix-kram locale-abhaengig, wie in c, d.h. welche buchstaben nun von [:alnum:] erkannt werden, ist nur dann gewiss, wenn locale bekannt ist.
prost
seth
hi,
ich benötige nochmal Eure Hilfe. Kann mir bitte jemand zeichen, wie man mit Perl am effektivsten aus einer Zeichenkette alle Zeichen entfernt, die keine Buchstend und keine Ziffern sind? Das müßte ja mit regulären Ausdrücken ganz gut gehen, ich weiß nur nicht, wie :(
\w => Buchstaben, Ziffern und _
\W => annersrum
http://perl-seiten.privat.t-online.de/ jo, den Grote gibts noch!
--roro
gudn tach!
\w => Buchstaben, Ziffern und _
\W => annersrum
der gesamte ausdruck koennte dann lauten
s/[\W_]//g
aber auch \w bzw. \W ist locale-abhaengig, bedarf also mehr vorsicht als die explizite (oder range-basierende) angabe der zeichenklassen.
prost
seth