RegEx Leere Zeilen entfernen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #3
      Originally posted by Mathis View Post
      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!

      Comment


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

        Comment


        • #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!

          Comment


          • #6
            Originally posted by Quetschi View Post
            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!

            Comment


            • #7
              Originally posted by Quetschi View Post
              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]

              Comment


              • #8
                Originally posted by goth View Post
                Trim ist kaputt.
                Erzähl ...!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Comment


                • #9
                  Originally posted by goth View Post
                  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!

                  Comment

                  Working...
                  X