Thread Match-Problem... (12 answers)
Opened by olruebe01 at 2007-02-20 18:26

topeg
 2007-02-23 22:30
#9649 #9649
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
allso du willst alles finden was zwischen
Code: (dl )
<tr><td VALIGN=TOP>
und
Code: (dl )
<\td><\tr>
steht sammt den Tags selber löschen. Dabei soll im Inhalt dazwischen kein "</td><td>" auftauchen.

Ich würde das so machen. :
Code: (dl )
$HTML =~ s|(<tr><td VALIGN=TOP>.*?</td></tr>[\s\r\n]*)|($_=$1)=~m\</td>.*?<td>\s?$_:""|egs;

(EDIT: bei [perl]-Tags wird aus "$1" "ü" ???)
Zu den Schaltern:
"s" sagt der gesammte String soll als "single line" gehandhabt werden (\r\n können direckt gesucht werden).
Bei "g" wird glogal gematched, was heißt es werden alle Strings gesucht, die auf das RegExp passen.
Mit "e" wird der Ersetzungsstring als Perlcode ausgeführt.
Und hier ist auch der Trick. Ich führe im Ersetungsstring selber eine RegExp aus, in der ich frage ob im gefunden String
Code: (dl )
</td>.*?<td>
vorkommt wenn ja, dann soll der String unverändert wieder eingesetzt werden, wenn sie nicht trifft, dann soll der String durch einen leeren ersetzt werden.\n\n

<!--EDIT|topeg|1172262807-->

View full thread Match-Problem...