Preg_match

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Preg_match

    Hallo,

    Ich habe ein preg_match das nur folgende befehle durchlassen soll:
    /irgendwas
    /irgendwas -irgendwas "irgendwas" ...

    preg_match("/\/((.*)|(.*)( -(.*) (\"|')(.*)(\"|'))+)/, $string);

    Nur funktioniert der nicht wirklich.

    wie könnte man das sonst noch machen?

    gruß kevin

  • #2
    http://pcre.nophia.de/evaluate zum testen und den modifier U evtl. benutzen.

    Kommentar


    • #3
      Hi,

      Den kenne Ich schon, nur Ich denke es liegt an dem hier:
      (.*)
      am anfang.
      Falls das andere (/irgendwas -name "test") nicht passt, nimmt er als alternative eben das (.*). und bei dem kann stehen was wolle, es kommt true raus.

      nur wie ändere ich das?

      gruß kevin

      Kommentar


      • #4
        der . steht für irgendein beliebiges Zeichen, das * steht dafür das die Zeichen kein oder mehrfach vorkommen dürfen. Darum ist es logisch das alles durchgelassen wird. Was möchtest du den prüfen?
        Zuletzt geändert von Melchor; 19.09.2005, 10:59.

        Kommentar


        • #5
          definiere "irgendwas" möglichst genau. Das setzt du dann in ne Regex um dann wirds passen.

          Kommentar


          • #6
            Hi,

            Irgendwas steht für einen befehl. das wäre ein ununterbrochenen (ohne leerzeichen) string.
            Aber wenn eben z.b. "/name", oder "/name -test "lol" nicht passt, würde auf meinen regex alles andere passen, weil eben das (.*) alles durchläßt.
            nur wie sage ich preg_match, das er nur stirngs durchlassen soll, bei dem _kein_ leerzeichen vorhanden ist?

            gruß kevin

            Kommentar


            • #7
              Hi,

              wenn du weisst um wieviele zeichen es sich dabei handelt, kannst du das mit {0,7} regeln. Dabei steht die erste Zahl für wieviele Zeichen vorkommen müssen und die zweite Zahl für wieviele Zeichen vorkommen dürfen.

              das sähe dann so aus:

              (.*){0,7}

              oder halt nur so

              (.*){7}


              mfg

              Kommentar

              Lädt...
              X