Ankündigung

Einklappen
Keine Ankündigung bisher.

Regulärer Ausdruck für \n to <br> außerhalb von [nobr][/nobr]

Einklappen

Neue Werbung 2019

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

  • Regulärer Ausdruck für \n to <br> außerhalb von [nobr][/nobr]

    Hallo zusammen,

    ich verzweifle gerade an Regulären-Ausdrücken.
    Mein Ziel wäre es, alle \n durch ein <br/> zu ersetzen, außer sie stehen in einem [nobr] Bereich.

    Es will aber einfach nichts richtig funktionieren. Muss ich hier mit Look-around assertions arbeiten?
    Egal welcher Ansatz - mir fehlt hier leider schon die Logik.

    Wenn ich das ganze INNERHALB des [nobr] ersetzen wollen würde, sahen meine Versuche ähnlich aus:
    PHP-Code:
    /\[NOBR\](.*)\n(.*)\[\/NOBR\]/ 
    Also zum teil würde es in diese Richtung schon klappen. Probleme bekomme ich dann aber immer noch, wenn der Text so aussehen würde:
    Code:
    Text 
    mit Absätzen
    [nobr] Text
    Ohne Absätzen[/nobr]
    
    Text dazwischen
    
    [nobr] Text
    Ohne Absätzen[/nobr]
    Spätestens an dieser Stelle hat er dann alles zwischen dem ersten und dem letzten alle \n ersetzt.

    Hoffe jemand kann mir helfen

    Lg

  • #2
    http://php.net/nl2br
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

    Kommentar


    • #3
      Warum möchtest du das alles mit einem RegEx erledigen?
      Habe Zweifel, ob das möglich ist.
      Mein Vorschlag: Splitte den Text an den [nobr] und [/nobr]. Dann kannst du die Textteile welche nicht in [nobr] eingebettet sind mit nl2br behandeln und alle Teile wieder verketten.

      Edit: Tipp
      Durch geschicktes Splitten per preg_split kann die Identifizierung und Behandlung der Textsegmente sehr einfach gehalten werden, so das dein Problem mit einer Handvoll Zeilen erledigt ist.

      Kommentar


      • #4
        BlackScorp danke, aber du scheinst meinen Beitrag entweder nicht gelesen oder verstanden zu haben.

        jspit ja mit preg_split hatte ich das auch schon versucht. Aber ich habe es zugegebenermaßen nicht geschafft, die Texte bei mehrfachem Vorkommen von [nobr]-Bereiche zu zerlegen und wieder zusammen zulegen.. :/
        Hättest du da evtl. einen kleinen Denkanstoß für mich?

        Kommentar


        • #5
          PHP-Code:
          $s 'Text 
          mit Absätzen
          [nobr] Text
          Ohne Absätzen[/nobr]

          Text dazwischen

          [nobr] Text
          Ohne Absätzen[/nobr]'
          ;

          $str="";
          foreach(
          preg_split('~(?=\[nobr\]|\[/nobr\])~i'$s) as $part) {
            
          $str .= stripos($part,"[nobr]") === false nl2br($part) : $part

          Ist sonst nicht meine Art, einen Ansatz/ eine Lösung ohne Kommentar so hinzuknallen. Hab im Moment wenig Zeit.
          Wenn du was nicht verstehst, frag nach! Hier sind außer mir noch genug Leute die dir dabei helfen können.

          LG jspit

          Kommentar


          • #6
            Whops, hatte total vergessen dir bescheid zu sagen, sorry
            Funktioniert super und ich komm klar, danke

            Kommentar

            Lädt...
            X