PDA

Visualizza la versione completa : Regex


HolyFather
31-01-2010, 09:57
Ciao ! volevo fare questa espressione regolare:

con S= {a,b,c} volevo determinare quelle stringhe che contengono esattamente una b ..

A prima vista ho fatto

(a|c)*b(a|c)*

Solo che mi restituisce anche le stringhe del tipo aabbcca!

Qualcuno sa aiutarmi ?? grazie !! :ciauz:

cacao74
31-01-2010, 12:48
[cacao74@tweety ~]$ echo -e "aba\nabba\nabc\nabbc" | grep "[ac]*[^b]b[^b][ac]*"
aba
abc

HolyFather
31-01-2010, 13:36
Originariamente inviato da cacao74


[cacao74@tweety ~]$ echo -e "aba\nabba\nabc\nabbc" | grep "[ac]*[^b]b[^b][ac]*"
aba
abc


Ciao grazie per la risposta , ma come mai restituisce anche nabc come -> abc ?

hfish
31-01-2010, 14:54
controlla di aver messo a modo gli "\"

HolyFather
01-02-2010, 07:17
Originariamente inviato da hfish
controlla di aver messo a modo gli "\"

Ho copiato / incollato :

/Users/noMercy root# echo -e "aba\nabba\nabc\nabbc" | grep "[ac]*[^b]b[^b][ac]*"
aba
abc
/Users/noMercy root#

hfish
01-02-2010, 09:37
Originariamente inviato da HolyFather
Ho copiato / incollato :

/Users/noMercy root# echo -e "aba\nabba\nabc\nabbc" | grep "[ac]*[^b]b[^b][ac]*"
aba
abc
/Users/noMercy root#

non capisco :fagiano:

aba viene correttamente restituito (una sola b)
abba no (due b)
abc si (unica b)
abbc no (due b)

qual il problema?

HolyFather
02-02-2010, 14:20
Originariamente inviato da hfish
non capisco :fagiano:

aba viene correttamente restituito (una sola b)
abba no (due b)
abc si (unica b)
abbc no (due b)

qual il problema?

:-D ok sono un fagiano :-D \n il new line :-D

+ o - la logica del funzionamento ? grazie :ciauz:

Loading