Thread letzte Zeichenfolge in einer Variablen ersetzen
(7 answers)
Opened by oruebe at 2004-08-27 19:55
[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 HTML::Parser oder - hier wahrscheinlich besser - HTML::TreeBuilder. |