[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: regexp



On Thursday 18 January 2007 16:29, Lucio Crusca wrote:
> Ciao *,
>
> ho un problema con le espressioni regolari (e chi non ne ha!):
> $ cat > file.txt
> aaa
> aaaaa
>
> Ora voglio trovare tutte le righe che contengano non più di 3 volte
> 'a' di fila:
>
> $ cat file.txt | grep 'a\{0,3\}'
> aaa
> aaaaa
>
> Perché mi trova anche la seconda riga? Non dovrebbe trovarmi solo la
> prima?

Un conto è il contenuto dell'espressione, un conto il suo contorno.

Per porre condizioni sui contorni si usano lookhaed e lookbehind.
Che non sono supportate da gnu grep ed egrep.
Con perl dovrebbe venire così
perl -ne 'print if /(?<!a)a{0,3}(?!a)/'

Chiaramente in questo caso risulta più semplice il grep -v aaaa già 
suggerito.

Ciao,
Daniele P.



Reply to: