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