[ 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