Marcus: Regulärer Ausdruck (Steuerzeichen filtern)

Hallo,

ich habe ein Problem:

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?

Danke!

  1. 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!