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.
Regex: entferne alles was nicht Buchstabe und Nummer ist
1. September 2006 | 3 Kommentare
1. September 2006 um 16:29 Uhr
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.
1. September 2006 um 16:59 Uhr
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 ;(
4. September 2006 um 09:09 Uhr
Für Dateinamen würd ich das eher explizit angeben, welche Zeichen ich dort zulassen will:
$str = preg_replace(’[^a-zA-Z0-9_-]’,$str);