Friedhelm: Unknown Modifier

Hallo,

if( preg_match("/^\d{2}[/.-]\d{2}[/.-]\d{4}$/", $row[1]) ) {

ergibt

Warning: preg_match() [function.preg-match]: Unknown modifier '.' in C:\xampplite\htdocs\d1\d1sql.php on line 5778

Weiß einer, warum?

Grüße, Friedhelm

  1. Hello,

    if( preg_match("/^\d{2}[/.-]\d{2}[/.-]\d{4}$/", $row[1]) ) {

    ergibt

    Warning: preg_match() [function.preg-match]: Unknown modifier '.' in C:\xampplite\htdocs\d1\d1sql.php on line 5778

    Ich vermute, es liegt an deiner Wahl der Begrenzer.

    /^\d{2}[/.-]\d{2}[/.-]\d{4}$/
         ^       ^         ^         ^

    Die Begrenzer dürfen innerhalb der Expression nicht vorkommen, oder müssen maskiert werden

    ~^\d{2}[/.-]\d{2}[/.-]\d{4}$~

    könnte also funktionieren. Ich habe jetzt die Sinnhaftigkeit der Expression nicht betrachtet, sondern nur die Formalien.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo Tom,

      ~^\d{2}[/.-]\d{2}[/.-]\d{4}$~

      könnte also funktionieren. Ich habe jetzt die Sinnhaftigkeit der Expression nicht betrachtet, sondern nur die Formalien.

      Jawohl. Diese tun es.
      Vielen Dank für den Tip.

      Viele Grüße, Friedhelm

      1. ~^\d{2}[/.-]\d{2}[/.-]\d{4}$~

        könnte also funktionieren. Ich habe jetzt die Sinnhaftigkeit der Expression nicht betrachtet, sondern nur die Formalien.

        Jawohl. Diese tun es.

        Ich meine nicht - Zawinski grüßt mal wieder: du willst vermutlich prüfen, ob der Feldwert ein Datum darstellt.

        99.10.2000 rutscht da locker durch aber auch 12.03-2011 oder 12-03.2011.

        Der 1.1.2011 hingegen wäre ein Fehler.

        strptime() und checkdate() sind da wesentlich schlauer.

        1. @@suit:

          nuqneH

          Ich meine nicht - Zawinski grüßt mal wieder: du willst vermutlich prüfen, ob der Feldwert ein Datum darstellt.

          Kann man auch mit regulärem Ausdruck … ;-)

          Qapla'

          PS: Sollte man aber nicht!

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. Ich meine nicht - Zawinski grüßt mal wieder: du willst vermutlich prüfen, ob der Feldwert ein Datum darstellt.

            Kann man auch mit regulärem Ausdruck … ;-)

            Das RegEx-Monster welches ein Datum nach dem gregorianischen Kalender auf Gültigkeit prüft möchte ich nicht sehen :D

            1. @@suit:

              nuqneH

              Das RegEx-Monster welches ein Datum nach dem gregorianischen Kalender auf Gültigkeit prüft möchte ich nicht sehen :D

              Schade. Dabei hab ich mir solche Mühe gegeben. [http://forum.de.selfhtml.org/archiv/2006/3/t126272/#m814810 ff.]

              Das RegEx-Monster, welches ein Datum im Format DD.MM.YYYY nach dem gregorianischen Kalender auf Gültigkeit prüft, möchte ich nicht schreiben. ;-)

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Das RegEx-Monster welches ein Datum nach dem gregorianischen Kalender auf Gültigkeit prüft möchte ich nicht sehen :D

                Schade. Dabei hab ich mir solche Mühe gegeben. [http://forum.de.selfhtml.org/archiv/2006/3/t126272/#m814810 ff.]

                Das RegEx-Monster, welches ein Datum im Format DD.MM.YYYY nach dem gregorianischen Kalender auf Gültigkeit prüft, möchte ich nicht schreiben. ;-)

                ISO 8601 != Gregorianischer Kalender :p

                Während ISO 8601 proleptisch ist, ist es der eigentliche gregorianische Kalender nicht - und diese Sonderfälle zu berücksichtigen (unterschiedliche Kalenderreformationszeitpunkte usw wird schwierig.

                Nach ISO 8601 per regulärem Ausdruck zu prüfen ist aber dennoch sehr eindrucksvoll.

        2. Ich meine nicht - Zawinski grüßt mal wieder: du willst vermutlich prüfen, ob der Feldwert ein Datum darstellt.

          Hi,

          das stimmt zwar. Aber ich prüfe nur Werte, die ich selber in eine Spalte eingetragen habe und da gibt es entweder ein vordefiniertes Datumsformat oder einen String, der einfach kein Datum darstellt.

          Deshalb habe ich es mir relativ einfach mit der regex gemacht.

          Gruß, Friedhelm