PHP und reguläre Ausdrücke

Diskutiere PHP und reguläre Ausdrücke im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Ahoi Vorwort: Mit dem PHP Befehl split() kann man einen String zerlegen wie mit explode(), nur daß man halt einen reg Ausdruck anstatt nur...
  • PHP und reguläre Ausdrücke Beitrag #1
vigger

vigger

Bekanntes Mitglied
Dabei seit
09.01.2001
Beiträge
713
Reaktionspunkte
0
Ort
Schwobaländle
Ahoi

Vorwort:
Mit dem PHP Befehl split() kann man einen String zerlegen wie mit explode(), nur daß man halt einen reg Ausdruck anstatt nur einen String als Trennzeichen eingeben kann.

Aufgabe:
Wie sieht der reg Ausdruck aus, der einen String zerlegt, der eine HTML Tabelle enthält, und zwar an den öffnenden "<TD"-Tags.

Beispiel:
String: <td align="right">&nbsp;1.&nbsp;</td><td>irgendwas&nbsp;</td>

Nach dem Splitten:
Teil 1: &nbsp;1.&nbsp;</td>
Teil 2: irgendwas&nbsp;</td>

Es soll dabei egal sein, ob td groß oder klein geschrieben ist, und ob Argumente wie align angegeben werden oder nicht.

Auf Deutsch:
Ich brauch einen reg Ausdruck, der den öffnenden TD-Tag vollständig definiert.

Mal gucken, ob das einer rauskriegt ;)

MfG Vigger

PS: @Lord: Sollte der gleiche Ausdruck sein wie in Perl, also laß mal bitte den Profi raushängen ;)
 
  • PHP und reguläre Ausdrücke Beitrag #2
Lordazrael

Lordazrael

Bekanntes Mitglied
Dabei seit
15.10.2000
Beiträge
693
Reaktionspunkte
0
Ort
Bad Offenbach
Moin,
Original geschrieben von vigger
Aufgabe:
Wie sieht der reg Ausdruck aus, der einen String zerlegt, der eine HTML Tabelle enthält, und zwar an den öffnenden "<TD"-Tags.

Beispiel:
String: <td align="right">&nbsp;1.&nbsp;</td><td>irgendwas&nbsp;</td>

Nach dem Splitten:
Teil 1: &nbsp;1.&nbsp;</td>
Teil 2: irgendwas&nbsp;</td>

Es soll dabei egal sein, ob td groß oder klein geschrieben ist, und ob Argumente wie align angegeben werden oder nicht.
ja wie du selbst sagst, muss man dabei berücksichtigen, daß im <td> tag unterschiedliches steht. ich würde folgendes machen: die datei mit split an der Stelle "<TD" splitten und all die Ergebnisse davon in ein Array reinjagen. Dann das array durchlaufen und mit preg_match dann aus dem array nur den Teil vor dem </td> extrahieren. Also angenommen im String $string ist deine Tabelle drin:


<?

// aufspliiten des arrays
$array = preg_split ( "/\<td/i", $string);

// durchlaufen des arrays und regexp
for ($i = 0; $i < count($array); $i++) {
preg_match("/\>(.*\<\/td\>)/i",$array[$i], $match);
$gesucht = $match[1];
echo("Gesucht: $gesucht<br>");
}

?>

PS: @Lord: Sollte der gleiche Ausdruck sein wie in Perl, also laß mal bitte den Profi raushängen ;)
obiger code hätte in perl eleganter ausgesehen :)

Ach und wenn du nur den Inhalt zwischen den <td> haben willst, ändere die regexp um in

preg_match("/\>(.*)\<\/td\>/i",$array[$i], $match);


HTH!
 
Zuletzt bearbeitet:
  • PHP und reguläre Ausdrücke Beitrag #3
vigger

vigger

Bekanntes Mitglied
Dabei seit
09.01.2001
Beiträge
713
Reaktionspunkte
0
Ort
Schwobaländle
Uff, erschlagen ;)

ThX!

MfG Vigger
 
  • PHP und reguläre Ausdrücke Beitrag #4
Lordazrael

Lordazrael

Bekanntes Mitglied
Dabei seit
15.10.2000
Beiträge
693
Reaktionspunkte
0
Ort
Bad Offenbach
hats denn wenigstens auf anhieb funktioniert ?
 
Thema:

PHP und reguläre Ausdrücke

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben