Cooker: Regulärer Ausdruck

Hallo,
ich möchte Leerstellen und/oder Zeilenumbrüche am Textende entfernen.
Also "x  xx\r\nyyy   \r\n   \r\n  " (mit \r\n oder mit Leerstelle endend)
====> "x  xx\r\nyyy"
Dies habe ich jetzt mit
txt =~ s/(\r\n)* *(\r\n)* *//g
einigermaßen hingekriegt (nicht in allen Fällen klappts).
Bestimmt gibt es aber einen eleganteren Weg.
Wie sieht der aus?
Gruß
Cooker

  1. Hi,

    Bestimmt gibt es aber einen eleganteren Weg.
    Wie sieht der aus?

    http://www.google.de/search?q=perl+trim

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      http://www.google.de/search?q=perl+trim

      Um auf diese Suche zu kommen, muss man aber schon schon wissen, dass es "trim" gibt.
      Leider jedoch nicht in Perl.
      Die Suche führt mich u.a. auf eine selbstgeschriebene Funktion, die ebenfalls einen regulären Ausdruck verwendet.
      Und diese müsste ich dann x-mal aufrufen (trim NL, trim Leerstellen, dann wieder trim Nl etc.
      Gruß
      Cooker

  2. Hallo,
    ich möchte Leerstellen und/oder Zeilenumbrüche am Textende entfernen.

    Wenn ich mich nicht irre, magst du whitespace meinen.
    Das entsprechende Referenzzeichen dafür ist \s

    und eine Impklementation dafür ist
      s/^\s+//; # am Stringanfang
      s/\s+$//; # am Stringende

    Es ist generell performanter, die REs separat zu halten.
    Das folgende ist nicht performanter.
      s/^\s*(.*?)\s*$/$1/; # ungünstig

    Also "x  xx\r\nyyy   \r\n   \r\n  " (mit \r\n oder mit Leerstelle endend)
    ====> "x  xx\r\nyyy"
    Dies habe ich jetzt mit
    txt =~ s/(\r\n)* *(\r\n)* *//g
    einigermaßen hingekriegt (nicht in allen Fällen klappts).
    Bestimmt gibt es aber einen eleganteren Weg.

    Falls du nicht generell whitespace meinst, sondern eine dezidierte Auswahl dieser Zeichen, so kannst du eine zeichenklasse [] verwenden

    Entfernt linefeed "\n" return "\r" whitespace "\ " tab "\t"

    s/[1]+//; # am Stringanfang
      s/[\r\n\ \t]+$//; # am Stringende

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o

    1. \r\n\ \t ↩︎

    1. Hallo,
      danke!
      Cooker