Beat: Regulärer Ausdruck

Beitrag lesen

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 ↩︎