RegEx Leere Zeilen entfernen

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

  • RegEx Leere Zeilen entfernen

    Hallo zusammen!

    Ich habe einen String mit Text und jede Menge überflüssigen Zeilenumbrüchen. Diese sollen weg. Allerdings nur die vor und nach dem Text. Nicht die im Text. Also beispielsweise soll aus

    Code:
    $text = "
    
    
    
    asdasd
    asdasd
    
    asdsadasd
    asdasd
    
    
    
    ";
    soll

    Code:
    $text = "asdasd
    asdasd
    
    asdsadasd
    asdasd";
    werden. Wichtig ist eben, dass die Zeilenumbrüche im Text erhalten bleiben. Ich weiß, dass sich das mit regulären Ausdrücken lösen lässt, habe aber zugegebenermaßen keine Ahnung wie. Kann mir jemand nen Tipp geben?

    Vielen Dank schonmal!!

  • #2
    Dazu muss man aber folgende Information haben: Welche Zeilenumbrüche sind es denn? Unix? Mac? Windows? Das folgende Snippet funktioniert bei mir z.B. einwandfrei, das muss aber nicht für dich gelten;

    PHP-Code:
    $text "text1
    text1



    text2




    text3"
    ;
    $text preg_replace('/\r/'''$text);
    echo 
    preg_replace('/\n\n+/'"\n\n"$text);

    /* Ausgabe:

    text1
    text1

    text2

    text3

    */ 
    This is what happens when an unstoppable force meets an immovable object.

    Kommentar


    • #3
      Zitat von Mathis Beitrag anzeigen
      Hallo zusammen!

      Ich habe einen String mit Text und jede Menge überflüssigen Zeilenumbrüchen. Diese sollen weg. Allerdings nur die vor und nach dem Text. Nicht die im Text. Also beispielsweise soll aus

      Code:
      $text = "
      
      
      
      asdasd
      asdasd
      
      asdsadasd
      asdasd
      
      
      
      ";
      soll

      Code:
      $text = "asdasd
      asdasd
      
      asdsadasd
      asdasd";
      werden. Wichtig ist eben, dass die Zeilenumbrüche im Text erhalten bleiben. Ich weiß, dass sich das mit regulären Ausdrücken lösen lässt, habe aber zugegebenermaßen keine Ahnung wie. Kann mir jemand nen Tipp geben?

      Vielen Dank schonmal!!
      preg_replace('/(\A[\r\n]+|[\r\n]+\z)/', '', $text);

      Das löscht alle (normalen[0]) Zeilenumbruchzeichen, die direkt auf den Textanfang folgen und alle Zeilenumbruchzeichen, die direkt vor dem Textende stehen.

      Ungeprüft, sollte aber funktionieren.

      --
      [0] Es gibt im Unicode-Repertoir noch einige "Umbruchzeichen" mehr, die verwendet aber normalerweise kein Mensch.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar


      • #4
        preg_replace('/(\A[\r\n]+|[\r\n]+\z)/', '', $text);
        Cool, danke... Funktioniert!!

        Kommentar


        • #5
          Hätte trim() nicht gereicht?
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Zitat von Quetschi Beitrag anzeigen
            Hätte trim() nicht gereicht?
            Sicher.

            Aber es war ja explizit nach einer Regex-Lösung gefragt worden.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar


            • #7
              Zitat von Quetschi Beitrag anzeigen
              Hätte trim() nicht gereicht?
              Trim ist kaputt.
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Zitat von goth Beitrag anzeigen
                Trim ist kaputt.
                Erzähl ...!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Zitat von goth Beitrag anzeigen
                  Trim ist kaputt.
                  Abgesehen davon, dass die Zeichensuche nur auf Byte-Basis geschieht, kann ich an trim() nichts kaputtes finden.
                  Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                  Kommentar

                  Lädt...
                  X