Autor Zpráva
Michal K.
Profil *
Zdravím, získávám z dat pomocí regulárního výrazu data uzavřené v:
{block:"nazev"}data{/}
mám na to tento regulární výraz:
preg_match("/{block:\"".$match["2"]."\"}(.*){\/}/is",$data,$match);
ale potřeboval bych, aby v (.*) mohlo být cokoliv, kromě daného uzavíracího znaku bloku - tedy {/}
zkoušel jsem to nějak takto:
preg_match("/{block:\"".$match["2"]."\"}([^({\/})]*){\/}/is",$data,$match);
ale bohužel takto mi to nefunguje, třeba v případě, kdy data obsahují jen }, tak match je prázdné. Nevíte někdo, jakým způsobem by se toto dalo vychytat?
juriad
Profil
Muzes pouzit nezravou variantu hvezdicky:
(.*?)
nebo modifikator U.
Negaci obecne regularni vyrazy dobre neumi. Emulovat sice jde, ale je to vopruz.
Michal K.
Profil *
Díky, doteď jsem netušil, jak "líné kvantifikátory" fungují.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0