Zadejte hledaný výraz...

Regulární výraz a hladovost operátorů

Matouš Skála
verified
rating uzivatele
(1 hodnocení)
11. 2. 2010 13:43:31
Zdravím a žádám o radu.
Tento regulární výraz funguje dobře.
Ale já bych potřeboval, aby bylo slovo "ano" nepovinné.
A tam mi to nevypíše nic, zřejmě kvůli hladovosti okolních operátorů.
Měl by někdo řešení? Díky.
// Je to samozřejmě hodně zjednodušené, tady je i původní regulární výraz:
)(.*?)((.*?))(.*?))@s", $kod, $matches);
?>
11. 2. 2010 13:43:31
https://webtrh.cz/diskuse/regularni-vyraz-a-hladovost-operatoru#reply456261
Pokud se nemýlím, měl by to vyřešit modifikátor U
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
11. 2. 2010 14:01:28
https://webtrh.cz/diskuse/regularni-vyraz-a-hladovost-operatoru#reply456260
Matouš Skála
verified
rating uzivatele
(1 hodnocení)
11. 2. 2010 14:13:20
Něco se změnilo, ale pořád to není ono.
Výsledky jednotlivých výrazů.
11. 2. 2010 14:13:20
https://webtrh.cz/diskuse/regularni-vyraz-a-hladovost-operatoru#reply456259
Karel Kohout
verified
rating uzivatele
(10 hodnocení)
11. 2. 2010 15:21:36
http://www.gskinner.com/RegExr/
Užitečný nástroj na zkoušení.
Mohlo by pomoci:
preg_match("/(.*?)(ano)?(.*?)(ne)/", $string, $array);
Případně udělat dvě varianty s | .
Problém regulárních výrazů je, že ne každá implementace se chová stejným způsobem (tady by to nemělo vadit, přesto bych ověřil, jestli v dané verzi nebo v PHP obecně není chyba/divné chování).
11. 2. 2010 15:21:36
https://webtrh.cz/diskuse/regularni-vyraz-a-hladovost-operatoru#reply456258
Pro odpověď se přihlašte.
Přihlásit