regular expression "not match"

Michael Iatrou m.iatrou at freemail.gr
Fri Sep 5 07:39:34 EEST 2008


When the date was Friday 05 September 2008, Giorgos Keramidas wrote:

> On Fri, 5 Sep 2008 06:45:59 +0300, Michael Iatrou <m.iatrou at freemail.gr> 
wrote:
> > When the date was Thursday 04 September 2008, Θοδωρής Λύτρας wrote:
> >> Έχω μια πονηρή ερωτησούλα, γιατί από αυτά που διάβασα φοβούμαι οτι δε
> >> γίνεται...
> >>
> >> Έχω ένα string π.χ.:
> >>
> >> abcd{efgh}ijkl
> >>
> >> To regexp {.*} ταιριάζει στο substring {efgh}.
> >> Εγώ όμως θέλω να κάνω match το abcdijkl, δηλαδή έναν η περισσότερους
> >> χαρακτήρες που ΔΕΝ εσωκλείονται σε { } .
> >> Υπάρχει κάποιο regexp για να το πετύχω αυτό???
> >
> > $ echo 'abcd{efgh}ijkl' | perl -ne 'print "$1$2\n" if
> > /(.+?)\{.+?\}(.+)/' abcdijkl
>
> Φφφφφ... Perl users :P
>
>     $ echo 'abcd{efgh}ijkl' | sed -e 's/{[^}]*}//'
>     abcdijkl
>
> [Προφανώς και υπάρχουν περίπου 6,920,938,463,463,374,607,431,768,211,456
> τρόποι να κάνουμε αυτό που θέλει ο Θοδωρής.  Αρκεί να μας πει τι ακριβώς
> προσπαθεί να κάνει, αντί να μας προκαλεί να βρούμε "πονηρά" τρυκ για να
> δείξουμε πόσο μεγάλη την έχουμε τη regexp library μας.]

Χμ, ξαναδιαβάζοντας το αρχικό mail, ίσως τελικά αυτό που θέλει να κάνει 
είναι από ένα string της μορφής:

	str1{str2}str3{str4}...

να πετάξει έξω οτιδήποτε υπάρχει μέσα σε αγκύλες:

$ echo 'abcd{efgh}ijkl{xy}z' | perl -ne 'print if s/{[^}]*}//g'
abcdijklz

-- 
 Michael Iatrou



More information about the Linux-greek-users mailing list