Reg. vyraz match & non-match

Pavel Šmerk xsmerk na informatics.muni.cz
Pátek Srpen 30 18:32:07 MEST 2002


Jindrich Kubec wrote:

> Vstup:
> 
> 1) string1: neco string2
> 2) string1: neco neco neco
> 3) string2 neco string1
> 4) string1
> 5) string1:string2
> 
> Vystup:
> Chci radky, kde je string1: ale ne string2, tj. radky 2,3,4.


No, na tretim radku je string2 a na ctvrtem neni string1:, tak nevim :-)

perl -ne 'print if /string1:/ and not /string2/'

vytiskne druhy radek.

> Jde to napsat jednim regularnim vyrazem? Me se to nepodarilo a perlre mi
> moc nepomohlo :-( Mastering RE mam bohuzel zatim sbaleny v nekde
> garazi...


Jednim regularnim vyrazem to pravda neni, moc nechapu duvod takoveho 
pocinani. Napr.

perl -ne 'print if /^(?:(?!string2).)*string1:(?:(?!string2).)*$/'

je mozna spravne, ale tipuju, ze efektivita pujde rapidne dolu.

P.





Další informace o konferenci Perl