butterbrot: preg_match

hi, ich habe vollgendes pattern:
"/[.a-z0-9_-]/i"

so, dieses erlaubt aber noch spaces und umlaute äöü.
Das verstehe ich halt nicht ganz. Ich will ein pattern was a-Z drin hat so wie 0-9 und . _ - und mehr nicht.
wie schreibt man das dann?

thx
butterbrot

  1. Hi,

    "/[.a-z0-9_-]/i"

    der Punkt braucht in einer Zeichenklasse nicht escaped zu werden, das Minus _sollte_ aber schon, wenn die Möglichkeit besteht, dass jemand mal die Zeichenklasse erweitert. "[a-z0-9_]" in Verbindung mit "/i" ist zu "\w" identisch.

    so, dieses erlaubt aber noch spaces und umlaute äöü.

    Es erlaubt _alles_, sofern mindestens eines der genannten Zeichen vorkommt. Mehr forderst Du nicht: _eines_ jener Zeichen. Beschäftige Dich anhand der Doku mit den Zeichen für Stringanfang, -ende und Multiplikation eines Patterns; oder aber mit der Negation einer Zeichenklasse.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. ok verstehe, das heist, äöu währe flasch, aber sobald ich schreibe äöüa ist es wieder riechtig da ja eins meiner zeichen drin ist.

      aber wie verhindere ich das jetzt?

      1. Hi,

        ok verstehe, das heist, äöu währe flasch, aber sobald ich schreibe äöüa ist es wieder riechtig da ja eins meiner zeichen drin ist.

        korrekt.

        aber wie verhindere ich das jetzt?

        Was hast Du an meiner Antwort dazu nicht verstanden?

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. ok habe es

          "/[1]+$/"

          jetzt weis ich was du mit anfang end ding meinst

          danke dir vielmals


          1. 0-9a-zA-Z_.- ↩︎

          1. Hi,

            ok habe es

            japp, richtig. Verbesserung:

            "/[1]+$/"

            "/[2]+$/"

            jetzt weis ich was du mit anfang end ding meinst

            Vielleicht solltest Du noch mal das Negieren einer Zeichenklasse nachschlagen; es liefert Dir hier eine (zumindest subjektiv) ganz leicht bessere Lösung.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes

            1. 0-9a-zA-Z_.- ↩︎

            2. \w.- ↩︎

            1. 0-9a-zA-Z_= \w ?

              meisnt du mit nigieren so was wie [^äöü]
              aber wie kann ich da space unterbringen?

              1. Hallo Butterbrot,

                meisnt du mit nigieren so was wie [^äöü]
                aber wie kann ich da space unterbringen?

                einfach einen Space reinschreiben vielleicht?

                CYa
                GONZO