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

  • nrausch
    hat ein Thema erstellt [Erledigt] RegEx-Problem beim Parsen.

    [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

  • nrausch
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    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.

    Einen Kommentar schreiben:


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

    cu
    Grüße
    Destruction

    Einen Kommentar schreiben:

Lädt...
X