Branndy: Umlaute in regulärem Ausdruck ansprechen

Hallo,

ich würde gerne in einem String alle Zeichen ersetzten, die nicht zu Wörtern/Zahlen gehören. Theoretisch wäre das ja mit "/[^\w]+/" einfach möglich. Jetzt gibt es nur ein Problem: Unsere Sprache ist Deutsch und da gibt es Umlaut wie in anderen nicht-englischen Sprachen.

Gibt es eine Möglichkeit alle Umlaute anzusprechen oder das über einen Zeichenumfach (z.B. Zeichen 30-2600) zu tun?

Die Lösung "/[^\wäÄöÖüÜß]+/" ist für meine Zwecke nicht geeignet, da auch andere Sprache verarbeitet werden und ich nicht gerade zufällig alle Umlaute der Welt kenne und aufzählen möchte. Da muss es doch eine Lösung mit Perl-kompatiblen regulären Ausdrücken geben.

Wie macht ihr das?

Grüße
Branndy

  1. Wie macht ihr das?

    In Perl ist \p{L} dafür zuständig Lettern in Unicode zu matchen.
    \p{^L} matcht dann alle Nicht-Lettern

    In Php wird es sicher ähnliche Mechanismen geben, die Unicode-Eigenschaften zu matchen.
    http://www.php.net/manual/de/regexp.reference.unicode.php

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische