Scheda di Riferimento sulle Espressioni Regolari

Se lavori con il testo, apprezzerai quanto siano utili le espressioni regolari. Questi sono piccoli caratteri di testo che ti permettono di creare regole elaborate su come appare una parola. Queste regole possono essere semplici come abbinare una singola lettera in un documento o qualcosa di complesso come cercare ogni parola che inizia con “a” e “c” ma termina con “ismo”.
Scarica questa Scheda
Inserisci il tuo indirizzo email qui sotto per ricevere questa scheda PDF nella tua casella di posta.
Espressioni Regolari Essenziali
Le espressioni regolari (o regex per abbreviare) sono ovunque negli ambienti Linux per cercare nel testo fino al carattere. Questa scheda delle espressioni regolari sarà utile per le persone che hanno bisogno solo di un piccolo ripasso di tanto in tanto.
Una cosa importante da notare è che l’insieme di espressioni regolari utilizzabili dipende principalmente dal tipo di standard che un software utilizza. Ad esempio, i terminali Linux comuni utilizzano spesso lo standard POSIX mentre Vim e Perl utilizzano definizioni non standard.
| Metacarattere | Descrizione | Esempio |
|---|---|---|
| Corrispondenza di Caratteri | ||
| A | Cerca qualsiasi istanza della lettera “a” in un documento e abbinala. | a corrisponde a “ant”, “cat” e “anna”. |
| . | Abbina qualsiasi singolo carattere, eccetto i caratteri di controllo. | c.t corrisponde a “cat”, “cut” o “cot”. |
| * | Ripeti l’espressione precedente 0 o più volte (modalità avido). | 12*3 corrisponde a “13”, “123”, “1223”, “12223”. Può essere usato insieme a “.” come m.*easier, che corrisponde a “maketecheasier”. Usare .* da solo non ha senso poiché corrisponde a tutto e restituisce il risultato completo. |
| + | Ripeti l’espressione precedente 1 o più volte. | 12+3 corrisponde a “123”, “1223”, “12223”. |
| ? | Rende l’elemento precedente facoltativo. | ma?ke corrisponde a “make”, “mke”. |
| ^ | Abbina dall’inizio della stringa. | ^he corrisponde a “hello”, “hell”, “help”, “he is a boy”. |
| $ | Abbina dalla fine della stringa. | ed$ corrisponde a “acted”, “bed”, “greed”. |
| Corrispondenza di Intervallo | ||
| ( … ) | Raggruppamento di caratteri o espressione. | (ak) corrisponde a “make”, “take”. |
| { n } | Abbina l’elemento precedente esattamente n volte. | 12{3}5 corrisponde a “12225”. |
| [ … ] | Abbina un singolo carattere nell’intervallo. | [abc] corrisponde a “a”, “b” o “c” nella stringa “abc”. |
| [^ … ] | Abbina qualsiasi carattere eccetto quelli definiti nell’intervallo. | a[^b]c corrisponde a “aec”, “acc”, “adc”, ma non a “abc”. |
| Corrispondenza di Classe (POSIX) | ||
| [:alpha:] | Cerca qualsiasi carattere nell’alfabeto inglese e abbinalo. | [[:alpha:]]ut corrisponderà alle parole “but”, “cut” e “rut”. |
| [:alnum:] | Cerca qualsiasi carattere e numero e abbinalo. | [[:alnum:]]tack corrisponderà a “stack” e “5tack”. |
| [:blank:] | Cerca un’istanza di un tab o uno spazio e abbinalo. | [[:blank:]]Hello corrisponderà a ” Hello”. |
| [:space:] | Cerca qualsiasi carattere di spaziato e abbinalo. | [[:space:]]World corrisponderà a ” World”. |
| [:upper:] | Cerca qualsiasi lettera maiuscola e abbinala. | [[:upper:]]+ corrisponderà alle parole “HELLO”, “FAntastic” e “wORld”. |
| [:lower:] | Cerca qualsiasi lettera minuscola e abbinala. | [[:lower:]]+ corrisponderà alle parole “heLLO”, “FAntastic” e “world”. |
| [:punct:] | Cerca qualsiasi carattere di punteggiatura e abbinalo. | \w+[[:punct:]] corrisponderà alle seguenti parole: “Hey!”, “Hi.” e “You?”. |
| [:cntrl:] | Cerca qualsiasi carattere di controllo e abbinalo. | \w+[[:cntrl:]]$ corrisponderà alle seguenti parole: “end^M”, “word^M” e “this^M”. |
| [.ng.] | Cerca qualsiasi digrafo di “ng” e abbinalo. | bad[.zh.] corrisponderà alla parola “badge”. |
| [=n=] | Trova e abbina tutte le lettere diacritiche di “n”. | [=a=]\w+ corrisponderà alle parole “ànna”, “ápple” e “âble”. |
| Corrispondenza di Classe (Perl/Vim) | ||
| \B | Cerca qualsiasi carattere che non è un confine di parola e abbinalo. | \B+\b corrisponderà a “o ” in “hello ” così come ” h” in ” hi”. |
| \w | Cerca qualsiasi lettera e numero, quindi abbina. | \w{5} corrisponderà alla seguente combinazione di lettere e numeri: “world”, “12345” e “w0r1d”. |
| \W | Cerca qualsiasi simbolo e abbina. | \w{2}\W\b corrisponderà alle seguenti parole: “as.”, “ha!” e “me?”. |
| \d | Cerca qualsiasi numero e abbina. | \d{3} corrisponderà ai seguenti numeri: “111”, “777” e “888”. |
| \D | Cerca qualsiasi carattere che non è un numero e abbina. | \D{3} corrisponderà alle seguenti lettere e simboli: “ant”, “ba!” e “!#*”. |
| \s | Cerca qualsiasi carattere di spaziatura e abbina. | a\w+(i|y)sm\s corrisponderà alle seguenti parole: “altruism “, “albinism ” e “aneurysm “. | | \S | Cerca qualsiasi carattere non spaziato e abbina. | \S{5} corrisponderà a: “123hi”, “hi!^&” e “ | | \A | Trova l’inizio di una parola indipendentemente dal fatto che non si trovi all’inizio di una riga. | \A{2} corrisponderà a “He” e “wo” in “Hello world”. | | \Z | Trova la fine di una parola indipendentemente dal fatto che non si trovi alla fine di una riga. | \z{2} corrisponderà a “lo” e “ld” in “Hello world”. | | Caratteri di Controllo | | | | | | Abbina sia l’espressione a sinistra che a destra della barra verticale. | col(o|ou)r corrisponde a “color”, “colour”. | | – | Specifica un intervallo di caratteri da abbinare. Utilizzato principalmente in [a-z], [A-Z],[1-9],[a-zA-Z1-9]. | a[a-z]c corrisponde a “abc”, “acc”, “adc”. | | \ | Escape un carattere speciale e trasformalo in un carattere normale. | a\*c corrisponde a “ac”. | | \n, \r, \t | Abbina rispettivamente un carattere di nuova linea, ritorno e tabulazione. | \w{5}\t\w{5}(\n|\r) corrisponderà a “Hello World”. | | \b…\b | Abbina una parola all’interno del confine. | \bTech\b corrisponde alla parola “Tech” in “Make Tech Easier”. | | *Espressioni Complesse | | | | [0-9]{3}-[0-9]{4} | Cerca qualsiasi sequenza di numeri di tre e quattro cifre e abbinala. | Questa espressione corrisponderà alla seguente combinazione di numeri: “123-1234”, “111-1111” e “777-1234”. | | ([0-9]{3}-)?[0-9]{3}-[0-9]{4} | Abbina due numeri di tre cifre e un singolo numero di quattro cifre. | Questa espressione corrisponderà alle seguenti combinazioni: “123-123-1234”, “000-111-0001” e “777-5678”. | | .{1,3} | Cerca qualsiasi parola che sia lunga da uno a tre caratteri. | Questa espressione corrisponderà alle seguenti parole: “at”, “it” e “can”. | | ([A-Z])\w+ | Abbina qualsiasi parola che inizia con una lettera maiuscola. | Questa espressione corrisponderà alle seguenti parole: “Hello”, “World” e “Hey”. | | e[([:digit:]|[:alnum:])]c | Abbina qualsiasi carattere alfanumerico tra “e” e “c”. | Questa espressione corrisponderà alle seguenti combinazioni: “e1c”, “e5c” e “e7c”. | | [^0-9[:upper:]]+ | Cerca qualsiasi parola interamente in maiuscolo che non inizia con un numero. | Questa espressione corrisponderà alle seguenti parole: “HELLO”, “WORLD” e “HEY”. | | “.+” | Trova una parola citata e abbinala. | Questa espressione corrisponderà alla seguente citazione: “Hello, world!”. |
Credito immagine: Unsplash