Lucio Crusca wrote:
Sì hai ragione, solo che il problema è esattamente il fatto che sto imparando ad usare le espressioni regolari e voglio capire come funziona ilmodificatore \{n,m\}, per questo l'esempio non si adatta.
Ah ecco! Direi che motivo migliore non c'era ;)
Non vedol'utilità di dire \{0,3\} se poi 4 volte 'a' va bene.
Ovviamente le macchine sono "stupide" (o meglio fanno esattamente cio' che tu dici). Dire \{0,3\} significa: seleziona la riga dove compare il carattere ... ripetuto da zero a 3 volte. In effetti, nella riga in cui compare ripetuto 4 volte, e' anche vero che compare ripetuto da zero a 3 volte. Quindi come ti e' stato suggerito, bisogna specificare in qualche modo che non si vuole la quarta ripetizione.
Come non capisco per quale motivo il seguente comando $ grep 'a\{1,3\}\([^a]\|$\)' file.txt mi trovi di nuovo entrambe le righe... non significa "da 1 a 3 'a' seguite da (qualsiasi cosa che non sia 'a' oppure fine riga)?
Si' ma se anche fossero 4 a, le ultime 3 di queste combaciano con la tua espressione regolare. Quindi non basta controllare la fine, bisogna controllare anche l'inizio delle ripetizioni...
C.V.