my $in_table = 0; my $in_td = 0; my $in_th = 0; while (not $text =~ m/\G\z/gc) { # Noch kein Ende erreicht if ( $text =~ m/\G<\s*table\b/igc ) { $in_table++ } # Wenn in table dann var incr elsif ( $text =~ m/\G<\s*td\b/igc ) { $in_td++ } # wenn in td dann var incr elsif ( $text =~ m/\G<\s*th\b/igc ) { $in_th++ } # wenn in th dann var incr elsif ( $text =~ m{\G}igc ) { $in_td-- } # wenn td verlassen dann var decr elsif ( $text =~ m{\G}igc ) { $in_th-- } # wenn th verlassen dann var decr elsif ( $text =~ m/\G(?=\n)/gc ) { # Wenn ein Newline kommt... $text =~ s{\G\n}{
} if not $in_table; $text =~ s{\G\n}{} if $in_table && not ($in_td || $in_th); $text =~ s{\G\n}{
} if $in_table && ($in_td || $in_th); } else { $text =~ m/\G./igcs } # Regex Engine ein Zeichen weiter Setzen }