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

Re: regexp



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 il
modificatore \{n,m\}, per questo l'esempio non si adatta.

Ah ecco!
Direi che motivo migliore non c'era ;)

Non vedo
l'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.



Reply to: