Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[OT] aiuto con le regex
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
heXen
Guru
Guru


Joined: 21 Jun 2004
Posts: 320

PostPosted: Tue Jul 06, 2004 5:08 pm    Post subject: [OT] aiuto con le regex Reply with quote

ciao

devo scrivere delle espressioni regolari per cercare nel dizionario italiano parole con le lettere in posizione data, tipo 123114 (a cifra uguale corrisponde lettera uguale) ma ho dei problemi
Nel caso in esempio se faccio

Code:

^([a-z])([a-z])([a-z])\1\1[a-z]$


spesso mi ritornano parole più lunghe di 6 lettere mentre la struttura della regex lo impone, poi i quantificatori {n} non mi moltiplica la cosa di prima n volte ma n-1, e poi mi sembra strano che non ci sia un operatore AND nelle regex.
Tutto questo con grep -E

ci capite qualcosa?
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Tue Jul 06, 2004 10:51 pm    Post subject: Reply with quote

se lanci grep da bash, devi sostituire ( con \( e | con \|.
poi calcola che le regexp in bash sono abbastanza stupide, il mio consiglio e' di farlo almeno in python o tcl , che e' abbastanza semplice anche se non conosci il linguaggio.

cmq non ho capito il tuo esempio. spiegati meglio..
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
heXen
Guru
Guru


Joined: 21 Jun 2004
Posts: 320

PostPosted: Wed Jul 07, 2004 9:49 am    Post subject: Reply with quote

beh l'esempio era un po' sparato perché non avevo i comandi e l'output sottomano
allroa:
devo trovare nel vocabolario italiano le parole nella forma abccb
grep -E '^[a-z]([a-z])([a-z])\2\1$' dizionario.txt

non mi ritorna nulla, mentre

grep -E '^......$' dizionario.txt | grep -E '[a-z]([a-z])([a-z])\2\1'
me ne ritorna un po'.
Domande:
:arrow: Perche` nella prima regex non ha "capito" che doveva essere lunga 5 lettere?
:arrow: Poi ancora, nel primo "membro" del pipe perche` se avessi messo n punti mi avrebbe trovato le parole non di n lettere ma di n-1?

:arrow: Poi altra domanda che mi ha portato alla necessita` di usare AND:
Tra le parole ritornate ho alcune tipo ABAAB mentre io voglio che la terza e
la quarta lettere siano sì uguali fra loro ma diversa dalla prima
Back to top
View user's profile Send private message
r_howie
n00b
n00b


Joined: 19 Apr 2002
Posts: 36
Location: Lisbon, Portugal

PostPosted: Wed Jul 07, 2004 11:16 am    Post subject: Reply with quote

Scusate, ma siamo sicuri che una regexp possa fare qualcosa del genere?

Per vedere che la quinta lettera è uguale alla seconda, questo vorrebbe dire che la macchina deve tenere "memoria", strada facendo, di qual era la seconda lettera della parola. Quindi ha bisogno di una pila. E questo non è in contraddizione con la definizione stessa di macchina a stati finiti, ovvero linguaggi regolari, ovvero regexp?

Non sono sicuro di non aver detto una bestialità!
_________________
Travel is the cure for racism, bigotry and prejudice. Ciao, -Giovanni.
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Wed Jul 07, 2004 11:19 am    Post subject: Reply with quote

si lo puo' fare. ma stai chiedendo troppo a bash. non ha operatori estesi.
questa cosa si fa facilmente con python.
Cerca su google 'dive into python' , ci sono anche degli esempi su questo.
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed Jul 07, 2004 11:50 am    Post subject: Reply with quote

FonderiaDigitale wrote:
si lo puo' fare. ma stai chiedendo troppo a bash. non ha operatori estesi.
questa cosa si fa facilmente con python.


Sostanzialmente concordo, se non ho cpaito male con un (bel) pò di impegno si potrebbe fare anche con bash, ma il risultato sarebbe molto inferiore (e probabilmente meno flessibile) a quello che si potrebbe avere con perl o con python in poche righe.
_________________
Ciao da me!
Back to top
View user's profile Send private message
heXen
Guru
Guru


Joined: 21 Jun 2004
Posts: 320

PostPosted: Wed Jul 07, 2004 11:57 am    Post subject: Reply with quote

il python un po' lo conosco, quando l'avevo studiato ricordo di aver trovato un articolo sulle regex, ora lo cerco e lo metto in pratica :wink:
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed Jul 07, 2004 12:00 pm    Post subject: Reply with quote

heXen wrote:
il python un po' lo conosco, quando l'avevo studiato ricordo di aver trovato un articolo sulle regex, ora lo cerco e lo metto in pratica :wink:


Nei bookmark io ho questo: Text Processing in Python... non so se faccia al caso tuo!
_________________
Ciao da me!
Back to top
View user's profile Send private message
heXen
Guru
Guru


Joined: 21 Jun 2004
Posts: 320

PostPosted: Wed Jul 07, 2004 6:47 pm    Post subject: Reply with quote

dall'articolo:

regex [...] that you may see used in some older Python code. While there are still a few, limited advantages to regex , they are minor and it is not worth using in new code

perché??
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Wed Jul 07, 2004 7:46 pm    Post subject: Reply with quote

randomaze wrote:

Sostanzialmente concordo


e ci fosse mai una volta che lo sei del tutto ;)
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Wed Jul 07, 2004 8:41 pm    Post subject: Reply with quote

FonderiaDigitale wrote:
e ci fosse mai una volta che lo sei del tutto ;)


beh ti eri perso il perl... :-D

@heXen non so perché l'articolo dica che il modulo re é brutto e vecchio! Se ho tempo domani provo a dargli una letta. IMHO per quello che serve a te va benissimo
_________________
Ciao da me!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum