cgicorner.ch

Informationen rund um Perl/CGI

Sie sind hier: Home > Knowledge Base > Zeilenumbruch nach max. X Zeichen

Zeilenumbruch nach max. X Zeichen

Ein Text in einer Variable soll nach maximal X Zeichen bei einem Leerschlag getrennt werden (z.B. bei einem Mail). Wie kann man das am einfachsten machen?

Regular Expressions bieten auch dafür eine Möglichkeit:

$text="Beliebiger Text\nMit teilweise sehr, sehr, sehr, sehr, sehr, sehr, ".
  "sehr, sehr, sehr, sehr, sehr, sehr, sehr, ".
  "sehr, sehr, sehr, sehr, sehr, sehr, sehr, sehr, ".
  "sehr langen Zeilen\nWieder einmal eine neue Zeile...";

my @splittedText=split(/\n/,$text);
foreach (@splittedText) {
  if (length($_) > 70) {
    1 while s/^(?=[^>|:].{70,})(.{0,69}[^ ]|[^ \n]+?) +(?=[^ \n])/$1\n/m;
  }
  print "$_\n";
}

Dieser Text wird nach maximal 70 Zeichen umbrochen. Die roten Zahlen müssen durch den Maximal-Wert (hier 70), bzw. den Wert eines davor (hier 69) ersetzt werden.

Autor: Jürg Sommer, knowledge@cgicorner.ch

[ zurück ]