wuscheck: Reguläre Ausdrücke

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

  1. 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>

    1. 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.