[REGEX] Regulärer Ausdruck für Template-System

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

  • [REGEX] Regulärer Ausdruck für Template-System

    Servus,

    ich bin gerade dabei ein Template System zu schreiben.

    Wenn ich folgendes Template habe:

    <html>
    <head>
    <title>{$TITLE}</title>
    </head>
    <body>
    {IF $BODY == "a}bc"}
    test
    {$BODY}
    {/IF}
    </body>
    </html>

    Welchen Regulären Ausdruck bräuchte ich, um folgendes zu finden:

    <html>
    <head>
    <title>{$TITLE}</title>
    </head>
    <body>
    {IF $BODY == "a}bc"}
    test
    {$BODY}
    {/IF}
    </body>
    </html>

    Vielen Dank schonmal!!

  • #2
    hast du schon einmal ins TUT geschaut?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ja, hab ich, aber RegExs sind meine große Schwäche

      Könntet ihr mir trotzdem helfen?

      Kommentar


      • #4
        dann fange doch einfach mal mit einfachen pattern an. und taste dich immer weiter in die regex materie rein. ich wollte das jetzt nicht für dich machen.

        in der regex bin ich auch nicht sooo doll.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Mein Problem ist: Wie kann ich herausfinden, ob ein }, das innerhalb von { und } liegt innerhalb eines Strings ist

          {IF $abc == "ab}c"}

          -> Ein } liegt innerhalb eines Strings (also zwischen den ")

          {IF $abc == "abc"}

          -> Es liegt kein } dazwischen

          Kommentar


          • #6
            tja. das könnte ein problem sein, muss aber nicht.

            warum nimmst du dann nicht statt dem } ein anderes zeichen, was du innerhalb von {} verwenden kannst?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Es wär doch jetzt vollkommen egal ob ich

              {IF $abc == "ab}c"}

              oder

              [IF $abc == "ab]c"]

              hätte, oder?

              Es wird sich wahrscheinlich niemand verbieten lassen, das einzugeben ...

              Gibt es dafür eine Möglichkeit über RegEx oder nicht?

              Ansonsten muss ich das selbst prozedural machen ...

              Kommentar


              • #8
                Mit den if'-Regex hab ich's nicht so,aber für die Variable:

                PHP-Code:
                !\\{(\\$(.*))\\}!is 
                ^^ Grad nicht getestet...Habs ähnlich gemacht in meinem alten Template System,aber halt nicht genauso

                Vielleicht auch noch Parameter U dran...

                EDIT:
                Super,alle Slashes werden gestripped...
                Ich machs mal anders:


                !\\{(\\$(.*))\\}!is

                Kommentar

                Lädt...
                X