Ten dovetek jsem moc nepochopil, ja bych to spis vyvratil tvrzenim, ze se snazi parsovat jazyk a^n b^n (krasnym prikladem je kontrola spravneho uzavorkovani, toto je vpodstate shodne), ktery neni regularni, ale bezkontexovy uz je, takze by se na to dal pouzit nejak LR, LL parser, ci jednoduse zasobnikovy automat ... ale k parsovani XML dokumentu jsou mnohem vhodnejsi knihovny na prochazeni XML stromu, jak uz bylo receno ...
---------- Forwarded message ---------- From: Petr Messner <[email protected]> Date: 2010/2/25 Subject: Re: [python] Greedy regexp To: Konference PyCZ <[email protected]> Ahoj, především jsi nenapsal, co se snažíš vyřešit. Každopádně, XML nebo HTML se neparsuje regulárními výrazy (protože to prostě nejsou jazyky s regulární gramatikou, IIRC), jsou na to knihovny (BeautifulSoup, lxml atd.). Pokud očekáváš > "One <a>Two</a> Three" pak bys prostě měl to jedno </a> v regulárním výraze přeskočit. Pak to ale bude bude regulární výraz specializovaný jen na elementy s jedním podelementem, což je důvod, proč na toto regulární výrazy nepoužívat. PM On 25.2.2010, at 21:38, Vasco wrote: > Zdravím, > > zrovna se hraju v Pythonu s regexp a narazil jsem na menší zádrhel. Mám > následující řetězec: > > "<a>One <a>Two</a> Three</a> <a>Four</a>" > > A následující regexp: > > "<(?P<name>\w+)>(?P<text>.*?)</(?P=name)>" > > Když to proženu přes 'search', dostanu pro první nalezený výraz tohle: > > "One <a>Two" > > Ale očekával bych spíše: > > "One <a>Two</a> Three" > > Naopak, pokud upravím regexp na: > > "<(?P<name>\w+)>(?P<text>.*)</(?P=name)>" > > Tedy vynechám otazník. Výraz .* pak bere vše, co mu přijde do cesty, > takže výsledek metody 'search' je: > > "One <a>Two</a> Three</a> <a>Four" > > Takže to také není to pravé ořechové. Rád bych to vyřešil nějak > elegantně, nejlépe pomocí regexp (když už se je teda učím :) ), ale > zatím jsem nenarazil na nic funkčního. Dá se podobný problém vůbec řešit > čistě pomocí regularnich výrazů, nebo ne? > > Btw. k testování reg. výrazů používám prográmek > http://kodos.sourceforge.net Rozhodně můžu doporučit. > > S pozdravem, > Vlastimil S. > _______________________________________________ > Python mailing list > _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
