Successivo: Maiuscolo-Minuscolo, Precedente: Espressioni regolari calcolate, Su: Espressioni regolari [Contenuti][Indice]
gawk
Il software GNU che ha a che fare con espressioni regolari comprende alcuni
operatori regexp aggiuntivi. Questi
operatori sono descritti in
questa
sezione e sono specificamente
per gawk
; non sono disponibili in altre implementazioni di
awk
.
La maggior parte degli operatori aggiuntivi riguarda l’identificazione di
parole. Ai nostri fini, una parola è una sequenza di uno o più lettere,
cifre, o trattini bassi (‘_’):
\s
Corrisponde a ogni carattere bianco, come definito nella localizzazione corrente. Lo si può pensare come un’abbreviazione di ‘[[:space:]]’.
\S
Corrisponde a ogni carattere che non è uno spazio bianco, come definito nella localizzazione corrente. Lo si può pensare come un’abbreviazione di ‘[^[:space:]]’.
\w
Corrisponde a ogni carattere che componga una parola; ovvero, corrisponde a ogni lettera, cifra, o trattino basso. Lo si può pensare come un’abbreviazione di ‘[[:alnum:]_]’.
\W
Corrisponde a ogni carattere che non è parte di una parola. Lo si può pensare come un’abbreviazione di ‘[^[:alnum:]_]’.
\<
Individua la stringa nulla all’inizio di una parola.
Per esempio, /\<via/
individua ‘via’ ma non
‘funivia’.
\>
Individua la stringa nulla alla fine di una parola.
Per esempio, /via\>/
individua ‘via’ ma non ‘viadotto’.
\y
Individua la stringa nulla o alla fine o all’inizio di una parola. (cioè, il limite di una parola - boundary in inglese). Per esempio, ‘\yradar?\y’ individua sia ‘rada’ che ‘radar’, come parole separate.
\B
Individua la stringa nulla che ricorre all’interno di una parola.
Per esempio,
/\Bora\B/
individua ‘Colorado’, ma non individua ‘che ora è’.
‘\B’ è essenzialmente l’opposto di ‘\y’.
Ci sono due altri operatori che operano sui buffer. In Emacs un
buffer è, naturalmente, un buffer di Emacs. In altri programmi GNU,
fra cui gawk
, le routine di libreria delle regexp considerano
come buffer l’intera stringa su cui effettuare il confronto.
Gli operatori sono:
\`
Individua la stringa nulla che occorre all’inizio di un buffer (di una stringa)
\'
Individua la stringa nulla che occorre alla fine di un buffer (di una stringa)
Poiché ‘^’ e ‘$’ si riferiscono sempre all’inizio e alla
fine di stringhe, questi operatori non aggiungono nuove funzionalità
ad awk
. Sono inclusi per compatibilità con altro
software GNU.
In altro software GNU, l’operatore di limite-di-parola è ‘\b’. Questo,
comunque, è in conflitto con la definizione, nel linguaggio awk
,
di ‘\b’ come
backspace, quindi gawk
usa una lettera differente.
Un metodo alternativo sarebbe stato di richiedere due barre inverse negli
operatori GNU, ma questo è stato ritenuto troppo arzigogolato. Il metodo
corrente di usare ‘\y’ al posto del ‘\b’ di GNU sembra essere
il male minore.
Le varie opzioni sulla riga di comando
(vedi la sezione Opzioni sulla riga di comando)
controllano come gawk
interpreta i caratteri nelle regexp:
Per default, gawk
fornisce tutte le funzionalità delle
regexp POSIX e gli
operatori regexp GNU
predecentemente descritti.
Sono descritti
in Operatori di espressioni regolari.
--posix
Sono ammesse solo le regexp POSIX; gli operatori GNU non sono speciali (p.es., ‘\w’ individua una semplice lettera ‘w’). Le espressioni di intervallo sono ammesse.
--traditional
Le regexp Unix tradizionali di awk
sono ammesse. Gli
operatori GNU non sono speciali, e le espressioni
di intervallo non sono ammesse.
Le classi di caratteri POSIX (‘[[:alnum:]]’, etc.) sono ammesse,
poiché BWK awk
le prevede.
I caratteri descritti usando sequenze di protezione ottali ed esadecimali sono
trattati letteralmente, anche se rappresentano metacaratteri di regexp.
--re-interval
Sono consentite espressioni di intervallo in regexp, se --traditional è stata specificata. Altrimenti, le espressioni di intervallo sono disponibili per default.
Successivo: Maiuscolo-Minuscolo, Precedente: Espressioni regolari calcolate, Su: Espressioni regolari [Contenuti][Indice]