Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] RegEx-Problem beim Parsen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] RegEx-Problem beim Parsen

    Ich habe eine kleine Funktion geschrieben, mit der der User eine Zeit seit einem gewissen Datum ausgeben kann.
    Als Funktionsparameter übergebe ich
    PHP-Code:
    function since($t$s "Seit {d} Tag[en], {h} Stunde[n], {m} Minute[n] und {s} Sekunde[n]"
    $t ist der Timestamp, $s ist der String, in den die Variablen eingesetzt werden sollen.
    Ich habe mir nun überlegt, dies mit preg_match_all und einer foreach zu lösen, allerdings will das wohl nicht so ganz.
    PHP-Code:
    preg_match_all("/{([a-z])}([^\[]+)[([a-zA-Z0-9]+)]/"$o$xx);
    var_dump($xx); 
    ergibt bei mir NULL
    $o wird vorher als eine etwas abgeänderte Version von $s definiert.
    Fehlermeldung:
    Warning: preg_match_all() [function.preg-match-all]: Compilation failed: unmatched parentheses at offset 31 in *** on line 21
    Danke
    Nico

  • #2
    1. Sollte dafür str_replace reichen
    2. musst du { escapen ( \{ ) .

    cu
    Grüße
    Destruction
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Was "parentheses" bedeutet, weist du? Die geschweiften Klammern haben im regulären Ausdruck eine spezielle Bedeutung: Sie gehören zur Gruppe der Quantoren, müssen also escaped werden, wenn du nach ihnen suchen möchtest.
      [URL]http://hallophp.de[/URL]

      Kommentar


      • #4
        Ich weiss zwar nicht genau wo die Funktion später eingesetzt werden soll, aber wäre da sprintf bzw. vsprintf nicht eleganter?

        Kommentar


        • #5
          Ersmal danke, es sind die einfachsten Fehler an denen man lange sucht
          Ich hab noch nicht viel mit RegEx gemacht, deshalb ist mir nicht augefallen, dass ich die {} escapen muss.. Vorallem wiel mir mein Zend Studio das escapen als Fehler angezeigt hat als ich es versucht hab =/
          Naja..
          Wegen der vsprintf-Lösung bin ich mir nich so sicher, ich werd mir das mal anschauen, vielleicht isses ja wirklich besser

          Ciao
          Nico

          Kommentar

          Lädt...
          X