Reg. vyraz match & non-match
Jindrich Kubec
kubecj na asw.cz
Sobota Srpen 31 17:00:31 MEST 2002
Honza Pazdziora wrote:
Puvodne:
> > 1) string1: neco string2
> > 2) string1: neco neco neco
> > 3) string2 neco string1
> > 4) string1
> > 5) string1:string2
Spravne:
1) string1: neco string2
2) string1: neco neco
3) string2 neco string1: neco
4) string1:
5) string1:string2
Vystup radku, kde je string1: a neni string2 (matchuji 2,4).
Nebo vystup radku, kde je string1: a po nem nikde neni string2 (matchuji
2,3,4). Puvodne jsem sel touhle cestou, ale nepodarilo se.
Ted uz by to zadani melo bejt konzistentni (pokud jsem zase neco
nezvoral).
> Kazdopadne odpoved je
>
> /^(?!.*string2.*$).*string1/s
>
> to Vam vrati radky 2 a 4 a to musi prozatim stacit, do vyjasneni
> zadani ;-)
To by mi melo stacit. Diky.
> Ted negativni match (ze tam straing2 nema byt) je tam udelan negativnim
> lookaheadem, coz je regularni vyraz, kterou perl hleda od aktualni
> pozice dobrava. Cili /^(?!.*string2.*$)/ mi zajisti, ze string2 v tom
> celem vyrazu nebude, a pak uz pouze namatchuji string1 nekde v tom
> retezci.
Vypada to, ze si budu muset perlre (nebo mastering) jeste trochu pocist,
abych to pochopil ;-)
--
Jindroush <kubecj na asw.cz>
http://jindroush.atari.org - Home of Atari Cartridge Dumping Project
Další informace o konferenci Perl