[ LUGOS-PROG ] Regularni izrazi

Ales Casar casar na uni-mb.si
Čet Avg 30 23:01:18 CEST 2001


On Wed, 29 Aug 2001, David Ipavec wrote:

> > 	X(YX)*
> > Se da kako izogniti ponavljanju cele tiste klobase v X? Uporabljam
> > regularne izraze po standardu POSIX 1003.2.
>
> (X)(Y\1)*
>
> \1 nadomesti kar je v prvem oklepaju
>
> Vsaj tako dela egrep, ne vem pa ce je to po tem standardu

Ja, pri egrep to prime, ampak stvar zal ni po POSIX 1003.2, zato ne pride
v postev. Pa tudi, ce bi sam princip deloval, to ne bi bila resitev
problema. Sicer je o tem pisal ze Borut.


On Wed, 29 Aug 2001, Borut Mrak wrote:

> (ab*)(c\1)*
>
> bo ujel
>
> abbcabbabbabb
>
> ne pa tudi
>
> abbcababbbbabbbaabbbbbb
>
> torej samo nize, kjer se ponovi tisto kar je "ujel" prvi regularni
> izraz oz. prvi del regularnega izraza. Ce sem prav razumel vprasanje,
> bi moral "okrajsan" regularni izraz ujeti tudi drugi niz.

Prav si razumel vprasanje, ja.


On Thu, 30 Aug 2001, David Ipavec wrote:

> Prav imas. Kaj pa:
> echo <niz> |egrep '^(ab*(c|$))+$'

To spet ne bo dobro, ker bo taksen regulrani izraz ujel tudi stringe, ki
se koncajo na 'c', na primer 'abbbc'.

> X(YX)*Z  -->  (X(Y|Z))+

To ni isto. V prvem primeru vsakemu Y vedno sledi X, v drugem primeru pa
to ni nujno. V prvem primeru se string tudi vedno konca z Z, v drugem
primeru pa to ni nujno.

Ales

-- 
Ales Casar                  | InterNet: Casar na uni-mb.si, A.Casar na ieee.org,
Faculty of EE & CS          |           A.Casar na s-gms.ms.edus.si
University of Maribor       | DECnet:   RCUM::ALES
SLOVENIA                    | WWW:      http://www.el.feri.uni-mb.si/~ales/




Dodatne informacije o seznamu lugos-prog