Autor | Zpráva | ||
---|---|---|---|
tqs Profil * |
#1 · Zasláno: 13. 3. 2009, 16:35:06
Potřeboval bych poradit, jak kontrolovat, zda daný výraz vyhovuje danému vzoru. Uvedu příklad vzoru.
(Syntaxe v BNF) vyraz::= vyraz * vyraz | cislo Tohle je samozřejmě jen hodně zjednodušený příklad, jde mi zkrátka o tu rekurzi. Říkal jsem si, že by to snad šlo udělat pomocí reg. výrazů, ale nejsem s nimi moc velký kamarád a netuším, jestli něco jako rekurzi vůbec umí... Případně uvítám i jiné návrhy, jak v PHP vytvořit vlastní parser nebo něco takového... |
||
AM_ Profil |
#2 · Zasláno: 13. 3. 2009, 17:08:53
To, co říkáš, teoreticky lze, jelikož regulární výraz sám o sobě je řetězec, takže na něj samotný můžeš aplikovat jiné regulární výrazy (nebo dokonce i sebe sama, ale nedovedu si představit, k čemu by to mohlo být - řekl bych že k ničemu). PHP parser regulárních výrazů má (dokonce 2 - Perl compatible a POSIX, doporučuji používat variantu jedna - s druhou se do dalších verzí PHP nepočítá a práce s ní není moc příjemná).
|
||
tqs Profil * |
#3 · Zasláno: 13. 3. 2009, 18:19:04
Jasně, vím, jak se v PHP obecně pracuje s regulárními výrazy. Jde mi o to, jak konkrétně zapsat ten příklad, co jsem uvedl. Pokud by někdo byl schopný mi tu rekurzi předvést v praxi, byl bych mu vděčný.
|
||
Časová prodleva: 15 let
|
0