[REGEX] Problem bei Syntaxhighlightning

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

  • [REGEX] Problem bei Syntaxhighlightning

    Hi!

    Ich baue ein Syntaxhighlightning script, das C++ QUellcode einfärben soll.
    Ich führe also eine ganze Menge preg_replace() auf den Code aus.
    Allerdings sind ja dann die <span style=""></span>, mit denen ich den Code einfärbe mit enthalten. So passiert es manchmal, dass preg_replace() bestimmte sachen im <span tag einfärben will. Dann Schreibt er natürlich ein <span> in das alte hinein und das haut alles nicht mehr hin un man siht die Hälfte vom alten Spawn.

    Wenn ich jetzt z.B. alle farben rot färben wollte hab ich das halt als erstes replace genommen.

    Denn es würde ja auch <span um rgb-Farbcodes aus anderen <spans machen.

    Jetzt bin ich allerdings an einem Punkt angekommen, wo da smit der richtigen Reihenfolge nicht mehr hinhaut. Ich brauch also in meinen Suchstrings etwas, dass die <span tags ausschließt.

    Ich hab shcon diverese Versuche unternommen von denen manche usinnig waren, aber versuchen kann amns ja

    Code:
    #(?<!\<span style=\"color:rgb\(([0-9\,]){1,})([0-9]{1,})(?!\)\"\>)#isU
    #(?:!\<span)(?:.*)([0-9]{1,})(?:.*)(?:!\</span\>)#isU
    Keins funktioniert... Habt ihr eine funktionierende Variante oder vielleicht eine ganz andere Möglichkeit?

    mfg okoman

  • #2
    poste mal bitte einen beispiel-text und das erwartete ergebnis ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Also im Prinzip brauch ich ja nur was im regex, das verhindert, dass etwas, das zwischen <span und > steht replaced wird...

      http://okoman.dyn.ee/gamelinks/index...howcode&id=17&

      als beispiel.

      z.B. will ich jetzt das alle zahlen rot werden normal könnte man das ja so machen:
      PHP-Code:
      $y=preg_replace("#([0-9]{1,})#isU","<span style=\"color:rgb(0,0,255)\">$1</span>",$y); 
      aber geht ja net weil wenn in dieser zeile z.B. schon ein Präprozessor steht, der bläulich gefärbt wird,

      <span style="color:rgb(0,0,125)">#include <stdio.h></span>

      dann würde ja oben geposteter auch die Zahlen aus diesem style hier überschreiben....

      [edit]
      der code auch nochmal hier zum testen:
      http://pcre.nophia.de/evaluate/3f056...dex.php#output
      Zuletzt geändert von ; 17.10.2004, 18:43.

      Kommentar


      • #4
        hmm,

        dieser regexp
        Code:
        #fußpilz(?!([^<]*>))#isU
        findet fußpilz ausschließlich außerhalb eines einleitenden span-tags.

        http://pcre.nophia.de/evaluate/5e15d...dex.php#output
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          wieso schreibst du dann nicht

          style="color:red;"

          oder

          class=red

          warum eigentlich so super bunt machen, mit einer einfachen Wortliste,
          sowie Erkennung für Kommentare und Strings kommt man schon sehr weit.

          zB http://board.webxsite.de/post.php?id=381
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            hmm.. naja das wird dann im profil einstellbar sein kann jeder machen wie er will....
            thx

            [edit]
            die zahlen nun auch noch aus kommentaren und strings etc rauszufilter wäre zu viel aufwand.. ich werds dann wohl doch einfacher machen...
            Zuletzt geändert von ; 17.10.2004, 19:00.

            Kommentar


            • #7
              @TBT

              gibts irgendwo sowas wie standardlisten für funktionen etc die gefärbt werdne sollen?

              Kommentar

              Lädt...
              X