Stefan Muenz: RegExp (Perl) gesucht - oder geht es nur komplizierter?

Beitrag lesen

Hallo Cheatah,

ich suche in Perl eine Regular Expression, die folgendes umwandelt:
"Text<u>Text</u>Text" --> "    ____    "
also jedes Zeichen zwischen <u> und </u> durch einen Unterstrich ersetzt, jedes Zeichen außerhalb durch ein Leerzeichen. Analog dazu soll umgewandelt werden:

Vielleicht geht's auch eleganter, aber so geht's jedenfalls:

$Zeile = "Text<u>Text</u>Text";
$Zeile =~ /(.*?)<u>(.*?)</u>(.*?)/;
$t1 = $1; $t2 = $2; $t3 = $3;
$t1 =~ s/\S/ /gi;
$t2 =~ s/./_/gi;
$t3 =~ s/\S/ /gi;
$Zeile = $t1.$t2.$t3."\n";
print $Zeile;

"Text<b>Text</b>Text" --> "    Text    "
also nur die Zeichen außerhalb von <b>...</b> durch ein Leerzeichen.

$Zeile = "Text<b>Text</b>Text";
$Zeile =~ /(.*?)<b>(.*?)</b>(.*?)/;
$t1 = $1; $t2 = $2; $t3 = $3;
$t1 =~ s/./ /gi;
$t3 =~ s/./ /gi;
$Zeile = $t1.$t2.$t3."\n";
print $Zeile;

viele Gruesse
  Stefan Muenz