PHP: regexp [regulérní výrazy] PHP

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Jey
Začátečník
Začátečník
Registrován: 30. črc 2011
Bydliště: Praha

PHP: regexp [regulérní výrazy] PHP

Příspěvek od Jey »

Vyzná se tu někdo v regulérních výrazech?

Potřebuju jedním preg_replace() v php odstranit všechny prázdné buňky v tabulce.

Prázdné buňky vypadají asi takto:
<TD bgcolor=#D0D1D2 width=1></TD>
<TD width=1 bgcolor=#D0D1D2></TD>
případně
<TD nějaký jiný bordel></TD>

Přikaz níže mi bohužel odstraní kompletně celou tabulku.
$data = preg_replace("/\<td(.*)\>\<\/td\>/iU", "", $data);

Nechápu proč, když mám v reg výrazu část "><" bez uvozovek, což určuje prázdné buňky.
Naposledy upravil(a) Jey dne pon 31. srp 2020, 21:56, celkem upraveno 2 x.
Zivan
Začátečník
Začátečník
Registrován: 30. čer 2005
Bydliště: Brno
Kontaktovat uživatele:

Re: PHP: regexp [regulérní výrazy] PHP

Příspěvek od Zivan »

Nebude to proto, ze ".*" muze byt cokoliv, tedy i nekolik bunek najednou?

Tedy z kodu:
<TD bgcolor=#D0D1D2 width=1></TD>
<TD bgcolor=#D0D1D2 width=1>Neni prazdna</TD>
<TD nějaký jiný bordel
></TD>

Bere to cervene jako .*?

Zkus to zmenit treba na:
$data = preg_replace("/<td([^<>]*)><\/td>/iU", "", $data);
HP Elitebook 845 G8 (Ryzen 5650U, 32GB RAM, WD SN570 1TB, 14" fullHD IPS) + HP USB-C G5 Essential + 29" LG 29UM65 + 22" Eizo S2202W
Jey
Začátečník
Začátečník
Registrován: 30. črc 2011
Bydliště: Praha

Re: PHP: regexp [regulérní výrazy] PHP

Příspěvek od Jey »

Cau, diky. Prave jsem se v tom dovrtal. Nakonec jsem zjistil, ze redakcni system webu neakceptuje vsechny druhy zapisu regexp.

Ale objevil jsem alespon skvely nastroj https://regex101.com/ kde se daji regexpy testovat online.

Nakonec jsem prisel na zapis, co uvadis, ktery jsem jeste doupravil dle potreby.

$data = preg_replace("/\<td[^>]*\>\<\/td\>/iU", "", $data);
Odpovědět

Zpět na „Programování a web“