Thread letzte Zeichenfolge in einer Variablen ersetzen (7 answers)
Opened by oruebe at 2004-08-27 19:55

Dubu
 2004-08-28 16:56
#3590 #3590
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=murphy,27.08.2004, 18:58]Auf jeden Fall könntest du die Substitution einfach auf einen Substring des Strings, welcher die Tabelle enthält, anwenden. Also etwas in der Art:
Code: (dl )
substr($tabelle, length($tabelle) - 10) =~ s/</tr>/</tr><tr><td>blabla</td></tr>/;

Aber vielleicht gibt es auch noch eine geschicktere Variante?!?[/quote]
Deine Substitution funktioniert so nicht, wegen der Slashes.
Wenn Suchmuster oder Ersetzung Schraegstriche enthalten, sollte man andere Begrenzer nehmen, z.B.
Code: (dl )
s~</tr>~</tr><tr><td>blabla</td></tr>~

oder
Code: (dl )
s{</tr>}{</tr><tr><td>blabla</td></tr>}


Grundsaetzlich ist diese Vorgehensweise aber ein grauslicher Hack, weil man wissen oder erraten muss, wie lange die letzte / die letzten beiden Tabellenzeilen im HTML-Quellcode sind. Auch sollte man sich darueber im Klaren sein, dass das haendische Parsen von HTML mit einfachen Regexen ein "Bad Thing" ist. (Extrembeispiel: Man stelle sich eine Passage wie foo<!-- </tr> -->bar im Text der Tabelle vor.)

Anzuraten sind eigentlich nur ordentliche Parser wie CPAN:HTML::Parser oder - hier wahrscheinlich besser - CPAN:HTML::TreeBuilder.

View full thread letzte Zeichenfolge in einer Variablen ersetzen