PCRE knihovna a (?<!foo)bar
Zdenek Pizl
z.p na linux-cd.cz
Pátek Červen 14 11:14:03 CEST 2002
On Thursday 13 June 2002 21:54, you wrote:
> On Thu, 13 Jun 2002, Zdenek Pizl wrote:
> > - a ja tam nechci ani to 'foo bar' ani jiny podobny text
> > 'fooLIBOVOLNYTEXTbar'. Predpokladal jsem, ze to vyresi vyraz
> > (?<!foo).*bar, lae to mi nejako nejde, respektive vypise to vsechno misto
> > pouze radku "barbar".
>
> Spravna formulace by byla "(?<!foo.*)bar". Otazka je, jestli to pouzivana
> verze PCRE prezije. Muj Perl mi vynadal, ze "variable length lookbehind
> not implemented", coz ho docela chapu.
neprezije, je to vyslovne uvedeno v dokumentaci, ze tato konstrukce musi mit
"fixed length pattern". trochu mne zarazi, ze to nejde tim uvedenym zpusobem,
zrejme budu muset pouzit nejake obskurni PCRE_UNGREEDY nebo tak ...
>
> Cili asi bude nejlepsi to udelat na dva pruchody. Nebo jednim pruchodem
> v necem inteligentnejsim, nez jsou regularni vyrazy (*).
bohuzel to nejde. Je to do konfigurace nejakeho logcheckeru (bondlog) a nemam
ani chut' ani cas se v tech zdrojacich prehrabovat. Zajimave je, ze to na
jednom stroji s prehledem funguje, ale mam mlhavy pocit, ze to tam bylo
prekladane s pcre pribalenou ke zdrojakum ... Nu coz jdu experimentovat.
>
> (*) Tedy regularni vyrazy...s backreferencemi lze popsat napr. i jazyk
> { A^nBA^n }, ktery neni regularni.
Oooo ano, gramatiky a jazyky to byla vzdycky moje slabost :)))
--
z.p.
Další informace o konferenci Linux