PCRE knihovna a (?<!foo)bar
David Olszyński
hisaak na mrkvoslav.ascs.muni.cz
Čtvrtek Červen 13 18:56:35 CEST 2002
Zdenek Pizl wrote:
> DD,
>
> resim problem, kteremu ani nechci verit :( Manualova stranka rika, ze
> <citace>
> '(?<!foo)bar' does find an occurrence of "bar" that is not preceded by
> "foo"
> </citace>
>
> tedy:
>
> $ echo "foobar" >> pokus
> $ echo "barbar" >> pokus
> $ echo "foo bar" >> pokus
> $ pcregrep '(?<!foo)bar' pokus
> barbar
> foo bar
>
> - 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".
Tenhle vyraz to nevyresi, protoze to .* se bude shodovat se vsim, co je pred
bar a to (?<!foo) bude platit na zacatku retezce, protoze pred prvnim znakem
neni nic a tudiz ani foo (aspon myslim:-).
Musite vzdy pocitat s tim, ze regularni vyrazy se snazi shody hledat!
> PouZivam PCRE -3.9.0
>
> Takze otazka zni: "jak na to ??"
Ted hned me nenapada, jak (a jestli) to pujde tak, jak chcete, ale mozna vam
pomuze tohle:
$ grep -v 'foo.*bar' pokus
barbar
$
Mimochodem unika mi souvislost s Linuxem. ;-)
hisaak
Další informace o konferenci Linux