Introduzione alle espressioni regolari (Regex)
Comprenda la sintassi e i concetti fondamentali delle espressioni regolari per eseguire potenti ricerche basate su pattern testuali.
Introduzione alle espressioni regolari (Regex) è una lezione Linux Command Line & Bash Scripting Mastery gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Command Line & Bash Scripting Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
Che cosa sono le espressioni regolari?
Le espressioni regolari, spesso abbreviate in Regex, sono pattern potenti usati per cercare e manipolare il testo.
Le si può immaginare come termini di ricerca estremamente potenti, in grado di trovare sequenze o caratteri specifici e persino posizioni all'interno del testo.
Vengono usate ampiamente nella programmazione, negli script e in strumenti da riga di comando Linux come grep, sed e awk.
Corrispondenza dei caratteri letterali
La regex più semplice cerca caratteri letterali esatti. Se cerca "apple", troverà esattamente "apple".
Usiamo il comando grep (Global Regular Expression Print) per dimostrare questa corrispondenza di base.
echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "pineapple" >> fruits.txt
grep "apple" fruits.txt
rm fruits.txtIl punto: qualsiasi singolo carattere
Il punto (.) è un carattere speciale che corrisponde a qualsiasi singolo carattere, tranne il carattere di nuova riga.
È come un carattere jolly per una posizione. Ad esempio, c.t corrisponderebbe a "cat", "cot" o "cut".
echo "cat" > words.txt
echo "cot" >> words.txt
echo "cut" >> words.txt
echo "coat" >> words.txt
grep "c.t" words.txt
rm words.txtAsterisco: zero o più (*)
L'asterisco (*) è un quantificatore che corrisponde a zero o più occorrenze del carattere o del gruppo che lo precede immediatamente.
Ad esempio, colou*r corrisponderebbe a "color" (zero caratteri 'u') e "colour" (un carattere 'u').
echo "color" > spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
echo "cold" >> spellings.txt
grep "colou*r" spellings.txt
rm spellings.txtSegno più: una o più (+)
Il segno più (+) corrisponde a una o più occorrenze del carattere o del gruppo precedente.
A differenza di *, l'elemento deve comparire almeno una volta. Quindi, go+gle corrisponderebbe a "google" e "gooogle", ma non a "ggle".
Nota: affinché +, ? e {} funzionino direttamente con grep, spesso è necessario usare l'opzione -E per le espressioni regolari estese.
echo "google" > search.txt
echo "goooogle" >> search.txt
echo "ggle" >> search.txt
grep -E "go+gle" search.txt
rm search.txtPunto interrogativo: zero o una (?)
Il punto interrogativo (?) corrisponde a zero o una occorrenza del carattere o del gruppo precedente.
Rende facoltativo un carattere. Ad esempio, colou?r corrisponderebbe a "color" (zero caratteri 'u') e "colour" (un carattere 'u').
echo "color" >> spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
grep -E "colou?r" spellings.txt
rm spellings.txtAncore: inizio (^) e fine ($)
Le ancore non corrispondono ai caratteri, ma a posizioni specifiche nel testo.
^corrisponde all'inizio di una riga.$corrisponde alla fine di una riga.
Esempio: ^apple corrisponde a "apple" solo se si trova all'inizio di una riga. apple$ corrisponde a "apple" solo se si trova alla fine.
echo "apple pie" > menu.txt
echo "fresh apple" >> menu.txt
echo "apple" >> menu.txt
grep -E "^apple" menu.txt
grep -E "apple$" menu.txt
rm menu.txtClassi di caratteri: parentesi quadre ([])
Le parentesi quadre ([]) definiscono una classe di caratteri, facendo corrispondere qualsiasi singolo carattere dell'insieme.
[aeiou]corrisponde a qualsiasi singola vocale.[0-9]corrisponde a qualsiasi singola cifra.[a-zA-Z]corrisponde a qualsiasi singola lettera.
È anche possibile negare una classe con [^...]; ad esempio, [^aeiou] corrisponde a qualsiasi carattere che NON sia una vocale.
echo "cat" > animals.txt
echo "bat" >> animals.txt
echo "rat" >> animals.txt
echo "cot" >> animals.txt
grep -E "[cb]at" animals.txt
grep -E "[^cbr]at" animals.txt
rm animals.txtQuantificatori: parentesi graffe ({})
Le parentesi graffe ({}) sono quantificatori che specificano il numero esatto di ripetizioni del carattere o del gruppo precedente.
a{3}corrisponde a "aaa"a{2,}corrisponde a "aa", "aaa", "aaaa" ecc. (almeno 2)a{2,4}corrisponde a "aa", "aaa", "aaaa" (tra 2 e 4)
Ricordi di usare grep -E per questi quantificatori.
echo "helllo" > greetings.txt
echo "hello" >> greetings.txt
echo "helo" >> greetings.txt
grep -E "hel{2,3}o" greetings.txt
rm greetings.txtVerifica rapida sulle regex
Consideri queste stringhe:
bananabanaanabanaananabna
Quale espressione regolare corrisponderebbe solo a "banana" e "banaana"?
Riepilogo delle basi delle regex
Ha imparato i fondamenti delle espressioni regolari!
- Le regex usano schemi per cercare e manipolare il testo.
- I caratteri letterali corrispondono a se stessi.
- I caratteri speciali come
.,*,+,?,^,$,[]e{}offrono potenti funzionalità di ricerca.
Ora applicherà questi schemi alla ricerca avanzata nel testo con il comando grep e le sue varie opzioni.
Domande Frequenti
La lezione «Introduzione alle espressioni regolari (Regex)» è gratuita?
Sì — il testo completo di «Introduzione alle espressioni regolari (Regex)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Command Line & Bash Scripting Mastery, passa a CoddyKit PRO. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
Cosa imparerò in «Introduzione alle espressioni regolari (Regex)»?
Comprenda la sintassi e i concetti fondamentali delle espressioni regolari per eseguire potenti ricerche basate su pattern testuali. Eserciti Linux Command Line & Bash Scripting Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Linux Command Line & Bash Scripting Mastery?
Non è richiesta alcuna esperienza precedente. Linux Command Line & Bash Scripting Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Introduzione alle espressioni regolari (Regex)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Linux Command Line & Bash Scripting Mastery?
Sì. Ogni lezione Linux Command Line & Bash Scripting Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione alle espressioni regolari (Regex)
- Grep avanzato con le espressioni regolari
- Combinare le espressioni regolari con sed/awk
- Gruppi di cattura, backreference e sostituzione