powerbook_blog

klein, praktisch, unverdaulich seit 2004

Regex: entferne alles was nicht Buchstabe und Nummer ist

| 3 Kommentare

Für mich als Merker: Wenn ich nochmal alles aus einem String entfernen will, was nicht gerade Buchstabe und Nummer ist, dann geht das mit [\W] bzw unter php, wo ich das ja meist brauche mit $str = preg_replace('[\W]',$str);. Aufpassen muss man bloss, wenn man das wie ich für Dateinamen verwendet, dass da durchaus ein ß (wie auch Unterstriche) durchgelassen wird.

3 Kommentare

  1. Das hat nichts mit php zutun. preg steht posix compatible regular expresions und ist nicht wirklich standardisiert, es unterscheidet sich sogar in den lokalen Ländereinstellungen (siehe dt. ß). Literaturtipp: Reguläre Ausdrücke von Jefrey Friedl.
    Ausserdem triffst du mit deinem RegEx doch nur auf das erste „normale Wort“ ohne Sonderzeichen. Ich würde das wohl anhand von Character-Encoding-Tabellen lösen.

  2. ich hab mir für solche „notizen“ ein wiki angelegt. da kommen dann alle infos rein, die ich garantiert wieder vergesse.

    leider vergesse ich auch zu oft, das wiki zu befüllen ;(

  3. Für Dateinamen würd ich das eher explizit angeben, welche Zeichen ich dort zulassen will:
    $str = preg_replace(’[^a-zA-Z0-9_-]’,$str);

Schreib einen Kommentar

Pflichtfelder sind mit * markiert.