Reguläre Ausdrücke
wuscheck
- php
Hallo Leutz,
ich verwende in einer Datei reguläre Ausdrücke, um eine Tabellen-Zeile zu löschen. Ich bin mir zwar sicher, dass der Ausdruck richtig ist, aber das Ergebnis sagt mir etwas anderes...
Hier der Ausdruck:
$value = eregi_replace( "/<td><a href=[^>]*>.*?</font></nobr></a></td>/", "", $value );
Hier der ursprüngliche Code:
<td><a href="javascript:somA(4,'0','037');" onmouseover="chgSt();return true;"><nobr><font class="V10" title="Spiel zeigen">BOL-M 037</font></nobr></a></td>
Ich möchte die Table-Tags und alles was dazwischen steht löschen.
Ergebnis: Es wird nichts gelöscht! Warum?
Gruss Pate
Ohne es jetzt getestet zu haben, könnte ich mir vorstellen, dass Dein Suchmuster zu gierig ist:
Mit <a href[^>]*> geht er bis ans ende des TD-Tags, und dann findet er nichts mehr, auf das er matchen kann.
Wie sieht das Ergebnis mit
<a href[^>]*?> aus?
Gruss,
Joerg
Hier der Ausdruck:
$value = eregi_replace( "/<td><a href=[^>]*>.*?</font></nobr></a></td>/", "", $value );Hier der ursprüngliche Code:
<td><a href="javascript:somA(4,'0','037');" onmouseover="chgSt();return true;"><nobr><font class="V10" title="Spiel zeigen">BOL-M 037</font></nobr></a></td>
Wie sieht das Ergebnis mit
<a href[^>]*?> aus?
Ich habe einfach ereg durch preg ersetzt und schon klappt es.... allerdings nur bei einem der Probleme. Ein anderes ist das folgende:
Original:
<tr valign="TOP">
<td class="RV10BL"><b>*</b></td>
<td align="center">1410701150</td><td CLASS="V8" colspan="4">blubber</td><td class="V8" colspan="6" align="right">bla</td>
</tr>
Code:
$value = preg_replace( "/<tr valign[^>]*>.*?</tr>/", "", $value );
Ergebnis: Es soll alles was zwischen den tr-Tags steht gelöscht werden plus die tr-Tags selbst.