• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

An die REGEX Experten

Puccini

Neues Mitglied
Hi.

ich hab folgendes Problem. Ich hab einen String welcher eine komplette HTML-Tabelle beinhaltet.

Jetzt wollte ich gern diesen string so filtern, das nur die zeilen (<tr>) erhalten bleiben, welche mit einem bestimmten such-wort übereinstimmen.
dabei soll das wort sowohl vollständig als auch teilweise vorkommen dürfen. (also zB Filter: "ein"->treffer auch bei "eins")

Hoffe ihr könnt mir da helfen. ich stell mich mit regex schwer an.
Quasi sollen die tr's durch replace ersetzt werden welche nicht den filter beinhalten mit nichts.

Danke für eure hilfe.
 
PHP:
$string = '
<table>
<tr><td>Test</td></tr>
<tr><td>fdgdfg</td></tr>
<tr><td>dfgdg415</td></tr>
<tr><td>1234567890</td></tr><tr><td>abcdef</td></tr><tr><td>____</td></tr>
<tr><td>fgjhghkqza</td></tr>
<tr><td>1564561fgdg</td></tr><tr><td>gdfhfghfgh</td></tr>
</table>
';
$suche = $_GET['s'];
$matches = array();
preg_match_all('/(<tr>)(.*?)'.$suche.'(.*?)(<\/tr>)/i',$string,$matches);

Dabei wird wohl auch 'td' bei $suche matchen.
 
Ich habs bisher so:
Code:
(<tr>.*<td>.*test.*</td>.*</tr>)

Das geht, aber so wird jede zeile mit dem Filter (test) rausgelöscht, alle weiteren bleiben da. es soll aber genau andersrum sein XD
 
Ja, aber falls in einer Linie zwei <tr> sind, würden auch die anderen TR's der Linie gelöscht werden auch wenn die den String nicht enthalten.
 
Zurück
Oben