Glob pattern

Da Wikipedia, l'enciclopedia libera.

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[modifica | modifica wikitesto]

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 precederlo con una barra inversa "\", ad esempio "ab\[cde".

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • (EN) 2.13 Pattern Matching Notation in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 19-05-2008.
  • (EN) glob in The Jargon File (version 4.4.7). URL consultato il 20-05-2008.
Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica