[REGEX] Mal wieder RegEx-Probleme

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

  • #16
    s.o.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #17
      Das würde auf ne Liste mit 2 Einträgen passen, aber da wär auch schon schluss

      PS: Getestet klappt's auch nicht...

      Kommentar


      • #18
        falsche modifier
        '/(\n|\r)\*(.*)?(\n|\r)\*(.*)?(\n|\r)/Ue'
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #19
          Wow, da ist es mal wieder passiert, ich hab was geschrieben und während dessen kamen schon neue Posts hinzu die ich 1.) Nicht gesehen hab, und die 2.) Meine Antwort aus dem kontext rissen.

          Also:
          Von derHund
          ich nehm mal an, vor 'und jetzt kommt' soll auch' ein * ?
          -Nein, das hab ich geschrieben um zu verdeutlichen dass die Liste auch mitten im Text beginnen kann.

          MelloPies Antwort hat mich auf eine ähnliche idee gebracht wie du sie hattest, also ([Enter]\*[Irgendwas])*beliebig oft, hat aber nicht geklappt. Bei deiner Version macht der jetzt jede Zeile einzeln zur liste, anstatt die komplette sequenz der Liste zu matchen.. .

          Bei deiner Version, MelloPie, besteht immer noch das Problem dass das muster lediglich 2 Listeneinträge hintereinander beschreibt (anstatt X Listenzeilen).

          VERDAMMT! Das muss irgendwie zu lösen sein

          Kommentar


          • #20
            sach mal haste mein letztes überhaupt getestet? in meinem Test mit deinen Beispielen funzt das.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #21
              Ne, hatte ich nicht getestet, aber er macht genau das, was ich dachte; Er matcht jeweils 2 Listenzeilen.

              Ich hab dein RegEx mit preg_replace durch "LISTE!" ersetzt, und aus
              Code:
              *Alles was irgendwie nützt
              dsdfsdfköklsdf
              
              * Dies
              * ist
              * eine
              * Liste
              * mit
              * vielen
              * Punkten
              macht er
              Code:
              *Alles was irgendwie nützt
              dsdfsdfköklsdf
              
              LISTE!LISTE!LISTE!
              * Punkten

              Kommentar


              • #22
                komisch...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #23
                  ok da fehlte ne klammer und mit dem letzten wort hab ich mal getrickst

                  preg_replace('/(\n|\r)(\*(.*)?(\n|\r))*\*(.*)?(\n|\r)/Ue','\\1', $text."\n");
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #24
                    geht das nicht auch einfacher? oder bin ich auf dem falschen pferd:
                    Code:
                    $text = "*Alles was irgendwie nützt
                    dsdfsdfköklsdf
                    
                    * Dies
                    * ist
                    * eine
                    * Liste
                    * mit
                    * vielen
                    * Punkten
                    
                    
                    bla
                    * noch
                    * ne
                    * kurze
                     die nix geschrieben steht";
                    
                    echo preg_replace("!\* (.*)(\\r\\n)!sU","[LISTE]\\1[/LISTE]\r\n",$text);
                    preg_match_all("!\* (.*)(\\r\\n)!sU",$text,$match);
                    print_r($match);
                    das matched (bei mir), würde allerdings den ersten punkt auch mitnehmen, wenn hinter dem "*" ein leerzeichen folgt.
                    Kissolino.com

                    Kommentar


                    • #25
                      geht nicht so recht... ich hab das Problem jetzt nochmal komplett geschildert, lest einfach mal http://www.php-resource.de/forum/sho...threadid=29955


                      @Wurzel:
                      Deine Version findet wieder jede Zeile der liste einzeln, ich muss aber die Liste komplett/zusammenhängend finden.

                      Bei der Variante mit dem Array besteht das Problem dass man hinterher verschiedene Listen nicht von einander unterscheiden kann, und somit nicht weis wo man hinterher die <ul>-Tags setzen soll.

                      Kommentar

                      Lädt...
                      X