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.
PHP: regexp [regulérní výrazy] PHP
- Jey
- Středně pokročilý
-
- Registrován: 30. črc 2011
- Bydliště: Praha
PHP: regexp [regulérní výrazy] PHP
Naposledy upravil(a) Jey dne pon 31. srp 2020, 21:56, celkem upraveno 2 x.
HANSPAULKA - Hanspaulská liga malé kopané | ROBOCRAFT - web o hře Robocraft | SPACEENGINEERS - web o hře Space Engineers | TUNNGLE - ultimátní nástroj pro hráče | WOTANKS - web o hře World of Tanks | Nechci být ani zpopelněn ani pohřben na území ČR (Česka).
- Zivan
- Začátečník
-
- Registrován: 30. čer 2005
- Bydliště: Brno
- Kontaktovat uživatele:
Re: PHP: regexp [regulérní výrazy] PHP
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);
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
- Středně pokročilý
-
- Registrován: 30. črc 2011
- Bydliště: Praha
Re: PHP: regexp [regulérní výrazy] PHP
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);
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);
HANSPAULKA - Hanspaulská liga malé kopané | ROBOCRAFT - web o hře Robocraft | SPACEENGINEERS - web o hře Space Engineers | TUNNGLE - ultimátní nástroj pro hráče | WOTANKS - web o hře World of Tanks | Nechci být ani zpopelněn ani pohřben na území ČR (Česka).