Frank Schönmann: Regulärer Ausdruck (Steuerzeichen filtern)

Beitrag lesen

hi!

Ich möchte aus einem String, der äusserst wilde Zeichen enthält (der
String beinhaltet den Inhalt einer Binär-Datei) nur die "normalen"
Buchstaben, Zahlen und Leerzeichen (keine Absätze) isolieren, also
alle anderen Zeichen herausfiltern. Gibt es hierfür einen fixen
Suchausdruck?

Es gibt in regulären Ausdrücken so genannte "character classes" (siehe
perldoc perlre). Die folgenden sind wohl die, die du suchst:

\w  alphanumerische Zeichen und "_"
  \s  Whitespaces (Leerzeichen, Tabs, ...)

Wenn du also nur diese Zeichen erhalten willst, dann musst du einfach
alle anderen rauswerfen:

$var ~= s/[^\w\s]+//g;

Damit werden alle Zeichen, die nicht zu den beiden character classes
\w und \s gehören durch Leerstrings ersetzt.

bye, Frank!