regular expression "not match"

V13 v13 at v13.gr
Fri Sep 5 20:55:17 EEST 2008


On Friday 05 September 2008, Giorgos Keramidas wrote:
> On Fri, 5 Sep 2008 13:02:55 +0300, Θοδωρής Λύτρας <thlytras at gmail.com> 
wrote:
> > Στις Παρ 05 Σεπ 2008, ο/η Christos Ricudis έγραψε:
> >> Gia na katalabeis peripou to problhma, apanthse sthn erwthsh : Sthn
> >> periptwsh tou "katw ap ( ton ( nipthra ) yparxei ) ) ) ena sifoni",
> >> ti brisketai ENTOS twn paren8esewn kai ti brisketai EKTOS? ;)
> >
> > Good point! Μόνο που οι τελευταίες δύο παρενθέσεις βγάζουν parse
> > error... :-)
> >
> > Πάντως εγώ αυτό που ήθελα από το string μου είναι να *πεταχτεί* ότι
> > δεν εσωκλείεται σε αγκύλες, δηλ. εν προκειμένω, και αν οι παρενθέσεις
> > ήταν αγκύλες να πεταχτεί το "katw ap " και να μείνει το "( ton (
> > nipthra ) yparxei ) ) )".
>
> Αν ήταν.  Δεν είναι όμως.  Όπως έγραψαν ήδη 1-2 φορές οι άλλοι, δε
> μπορείς να κάνεις matching σε *grouping* χαρακτήρες _μόνο_ με regexps.
> Δηλαδή δεν υπάρχει regular expression που να μπορεί να σου πει αν είναι
> `properly balanced' οι παρενθέσεις στο παραπάνω.
>
> Αν έχεις κάποιο *άλλο* τρόπο να σπάσεις το κείμενο σε `tokens' τα
> πράγματα αλλάζουν, βέβαια, αλλά αυτό είναι άλλη ιστορία :)

+1

To antistrofo mporei panta na ginei me loop (!= ena regexp):

TOLD='' 
TNEW='ab{{cd}a}ef{gh}ij'

while [ "x$TOLD" != "x$TNEW" ] ; do
  TOLD="$TNEW" 
  TNEW=$(echo "$TOLD" | sed 's/{[^{}]*}//g') 
done 

echo $TNEW

Doylevei giati arxizei kai sbinei apo mesa pros ta ekso.

Tora, den exo katalabei ean theleis na kratiseis ta pio mesa, h ta pio ekso. 
Sto: "asdf{asdf{fre}frew}fwr" kai sto "asdf{asdf{qafeqrfwer}freref" ti 
perimeneis na pareis?

Sigoyra pantos tha xreiasteis kati psilo-anadromiko opos to parapano oti kai 
an kaneis. 

Efoson omos grafeis se C, giati den to kaneis apla pernontas to string 
xaraktira xaraktira? Tha einai poly pio grigoro.

<<V13>>




More information about the Linux-greek-users mailing list