[REGEX] Umwandlung von verschachteltem BB-code...

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

  • [REGEX] Umwandlung von verschachteltem BB-code...

    mhh, habe grade bei meinem Forum ein Problem mit den RegExps....

    Wenn ich beispielsweise meinen code verschatel:
    [u][b] Text [/b ][/ u]
    wertet er nur das u aus.....

    der code:
    PHP-Code:
    ...
    //Schriftformatierung:
       
    $search "!\[(b|i|u|del)\](.*)\[\/\\1\]!mi";
       
    $replace "<\\1>\\2</\\1>";
    $text preg_replace($search$replace$text);
    .... 
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

  • #2
    Pack noch den Modifier U dazu.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      hmm,

      die verfluchte ungreediness nützt hier imho garnix, hab nämlich das gleiche problem und U hat nix geholfen ... wenns aber trotzdem (bei dir) gehen sollte, falle ich auf die knie und werde Titus drei tage lang anbeten, ich habs nämlich nur mit nem workaround geschafft ...
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        Mhh, asuführliche Tests ergeben:

        Erwartung:
        u, würde dazu führen dass z.b. sowas:
        [ u]Text[ /u]Text[ u]text[ /u]
        vernünftig getrennt wird...

        Ergebnis:
        es hat aus irgendeinem Grund keine auswirkung!
        es wird imer so ausgegeben:
        Text[ /u]Text[ u]text


        @Ausgangsproblem....:
        Auch wenn unsauber müßte man den regexp einfach mehrmals ausführen, oder für jeden Tag einzelnd..... Hat nicht jemand ne Lösung dafür, die in einem RegExp läuft!?
        Die Musikreview Seite

        hi, i'm a signature virus. copy me into your signature to help me spread.

        Kommentar


        • #5
          hmm,

          daß ist doch wieder was anderes? mehrfach aufeinanderfolgende tags kriegst du mittels /U geregexpt, aber verschachtelte krieg ich nicht damit hin ... wirst wohl around worken müssen ...
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            es gibt da noch (?R) für rekursive aufrufe, aber ich für meinen teil bin da noch im anfangsstadium

            momentan sieht's so aus, dass ich das so oft durchlaufen lass, bis das nix geändert wurd und dann is gut
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Mhh, du hast nicht zufällig nen Link dazu.... oder Zeit mir das kurz zu erklähren??
              Weil ich krieg es nicht hin google nach (?R) suchen zu lassen....
              Die Musikreview Seite

              hi, i'm a signature virus. copy me into your signature to help me spread.

              Kommentar


              • #8
                Hab das jetzt vorrübergehend unsauber mit einer FORschleife gelößt, aber ich würde mich freuen wenn mir jemand nen Tipp geben könnte wie ich (?R) benutze........

                Danke
                Zuletzt geändert von Tartax; 04.02.2004, 16:14.
                Die Musikreview Seite

                hi, i'm a signature virus. copy me into your signature to help me spread.

                Kommentar


                • #9
                  hi

                  a) ist u falsch, wenn dann U - funzt bei mir aber nicht, genau dann gibts bei mir diese fehler
                  b) bei mir gehts mit "si", vielleicht hilft das ja. einen logischen Zusammenhang seh ich da leider auch nicht drin, warum es bei deinem nicht geht, naja

                  Kommentar


                  • #10
                    b) bei mir gehts mit "si",
                    kannst du mal ein beispiel posten?
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      habs net so "vornehm" in einem regex, aber bitte:
                      $str = preg_replace("#\[B\](.+?)\[/B\]#si", "<b>\\1</b>", $str);
                      $str = preg_replace("#\[I\](.+?)\[/I\]#si", "<i>\\1</i>", $str);
                      $str = preg_replace("#\[U\](.+?)\[/U\]#si", "<u>\\1</u>", $str);

                      ich hoffe mal hab jetzt net am Ziel vorbeigeschossen, aber ich glaube darum gings ja, dass er bei dir, den inneren kram weglässt, also bei mir passierts so nicht.

                      Kommentar


                      • #12
                        ja,

                        danke trotzdem ähm, ... das es so funktioniert, ist mir verständlich



                        löst u.U. Tartaxs problem, (hatte er ja selbst schon angedacht), für mich ists genauso gut/schlecht, wie meine jetzige methode
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          sag ich ja, hab mich schon gewundert, dass das noch das prob ist - deswegen ja, falls am ziel vorbei net bös' sein

                          Kommentar


                          • #14
                            ne, U hat bißcher nix gebracht, ja in meheren RegExp geht es, ist ja klar...

                            Was mich interessiert ist das was Happy angesprochen hat.... Naja, ich hab nochnix gefunden...
                            Die Musikreview Seite

                            hi, i'm a signature virus. copy me into your signature to help me spread.

                            Kommentar


                            • #15
                              8. Fairly obviously, PCRE does not support the (?{code}) and
                              (?p{code}) constructions. However, there is some experimen-
                              tal support for recursive patterns using the non-Perl items
                              (?R), (?number) and (?P>name). Also, the PCRE "callout"
                              feature allows an external function to be called during pat-
                              tern matching.
                              Ich schätze damit dürfte das Thema gestorben sein

                              Achso: Quelle: http://www.pcre.org/man.txt


                              PS: evtl. ist Google doch net alles was. gibt auch andere Suchmaschinen
                              Resultat kommt übrigens von Lycos
                              Zuletzt geändert von Hatachy; 04.02.2004, 17:34.

                              Kommentar

                              Lädt...
                              X