Precedente: , Su: Operatori di espressioni regolari   [Contenuti][Indice]


3.3.2 Alcune note sulle espressioni di intervallo

Le espressioni di intervallo non erano tradizionalmente disponibili in awk. Sono state aggiunte come parte dello standard POSIX per rendere awk ed egrep coerenti tra di loro.

In passato, poiché vecchi programmi possono usare ‘{’ e ‘}’ in costanti regexp, gawk non riconosceva espressioni di intervallo nelle regexp.

Comunque, a partire dalla versione 4.0, gawk riconosce espressioni di intervallo per default. Ciò accade perché la compatibilità con POSIX è ritenuta più importante da molti utenti gawk rispetto alla compatibilità con dei vecchi programmi.

Per programmi che usano ‘{’ e ‘}’ in costanti regexp, è buona pratica proteggerli sempre con una barra inversa. Allora le costanti regexp sono valide e si comportano come desiderato, usando qualsiasi versione di awk.17

Infine, quando ‘{’ e ‘}’ appaiono in costanti regexp in un modo non interpretabile come espressione di intervallo (come in /q{a}/), allora sono prese letteralmente.

Come detto sopra, le espressioni di intervallo non erano tradizionalmente disponibili in awk. Con la versione di Marzo 2019 di BWK awk sono (finalmente) disponibili.

Ciononostante, non essendo state disponibili per parecchi decenni, gawk continua a non renderle disponibili quando viene eseguito in modalità compatibile (vedi la sezione Opzioni sulla riga di comando).


Note a piè di pagina

(17)

È meglio usare due barre inverse se si sta usando una costante stringa con un operatore regexp o una funzione.