Un glob pattern è una sintassi attraverso la quale si rappresenta un insieme di stringhe.
È la sintassi tradizionalmente usata nelle shell testuali dei sistemi Unix e Unix-like, ma anche MS-DOS per effettuare l'espansione di nomi di file e directory, ed essa riprende in piccola parte quella delle espressioni regolari.
Sintassi
In un glob pattern la maggior parte dei caratteri è vista in modo letterale (ad esempio "a
" corrisponde ad "a
", "main.c
" corrisponde a "main.c
"). Fanno eccezione a questa regola i metacaratteri:
Metacarattere
|
Descrizione
|
*
|
Rappresenta una sequenza di zero o più caratteri qualsiasi (quindi anche una sequenza vuota). Ad esempio, "abc* " trova corrispondenza in "abcde " ma anche in "abc " stesso.
|
?
|
Rappresenta un singolo carattere qualsiasi, che però deve essere presente. Ad esempio, "ab? " trova corrispondenza in "abc " e in "ab1 ", ma non in "ab ".
|
[caratteri]
|
Rappresenta un singolo carattere tra i caratteri specificati. Ad esempio "a[bB]c " trova corrispondenza in "abc " e "aBc ".
Volendo specificare anche una parentesi quadra chiusa, occorre specificarla come primo carattere, ad esempio con "[]xyz] ".
È possibile specificare intervalli di caratteri nella forma "inizio-fine ", ad esempio "[a-z] " o "[0-9] " (se si vuole indicare esplicitamente un trattino occorre specificarlo come ultimo carattere, ad esempio "[0-9-] ") ed anche le classi di caratteri predefinite come "[:alpha:] " o [:digit:] che si ritrovano anche nelle espressioni regolari. Ad esempio "[[:alpha:]123] " trova corrispondenza in "a ", "b ", "1 ", "Z ".
|
[!caratteri] (o anche [^caratteri] )
|
Rappresenta un singolo carattere che non è tra i caratteri specificati. Ad esempio "ab[!ef] " trova corrispondenza in tutte le stringhe di tre caratteri eccetto "abe " e "abf ". Anche in questo caso è possibile specificare intervalli e classi di caratteri.
Volendo specificare anche una parentesi quadra chiusa, occorre specificarla come primo carattere di seguito al punto esclamativo, ad esempio con "[!]x|-yz] ".
La variante con accento circonflesso "^ " è generalmente disponibile per analogia con le espressioni regolari, sebbene lo standard POSIX specifichi che il comportamento in tale caso è indefinito.
|
{caratteri}
|
Rappresenta più espansioni di caratteri separati da una virgola.
Ad esempio "{a,b?,c,ciao}" trova corrispondenza in "a","b" più un qualsiasi carattere (es. "ba","b1","bp"),"c" e la parola "ciao".
|
Per far in modo che un metacarattere sia interpretato in maniera letterale occorre farlo precedere da una barra inversa "\
", ad esempio "ab\[cde
".
Voci correlate
Collegamenti esterni