Cheat sheet/Nozioni di base di Regex
Le espressioni regolari (regex o regexp) sono uno strumento molto utile per identificare modelli specifici in qualsiasi testo, il che aiuta a estrarre informazioni indipendentemente dal formato del testo.
Regex può essere utilizzato per convalidare input, rottamare web, trovare stringhe specifiche nei documenti, convalida della sintassi per compilatori e tanti altri esempi.
Regex è ampiamente utilizzato in più linguaggi di programmazione che utilizzano quasi la stessa sintassi, quindi questo articolo finge di mostrare gli operatori regex di base.
Le sezioni seguenti mostreranno i diversi operatori utilizzati per regex e alcuni esempi. Puoi anche testare le tue espressioni regolari con alcune spiegazioni in questa pagina.
Ancora
Personaggi | Usa |
---|---|
^ | Indica l'inizio della stringa. Corrisponderà solo alla stringa che inizia con i caratteri che seguono |
$ | Indica la fine della stringa. Questo corrisponderà a qualsiasi stringa che termina con i caratteri prima del simbolo '$' |
abc | Corrisponde a qualsiasi stringa che contiene la sequenza di caratteri "abc" su di essa |
Alcuni esempi sono:
Esempio | Descrizione | Esempi di stringhe corrispondenti |
---|---|---|
^A | Corrisponde a tutte le stringhe che iniziano con A | “A n mela è nell'albero", "A nuovo ristorante” |
end$ | Corrisponde a una stringa che termina con la sequenza di caratteri "fine" | "La fine ”, “Facciamo fine ” |
^Ciao mondo$ | Corrisponde alla stringa esatta "Hello world" | “Ciao mondo ” |
ordina | Corrisponde a qualsiasi stringa che contenga il testo "ordine" | "Il mio ordine il numero è 54” |
Quantificatori
I quantificatori vengono utilizzati per rappresentare le volte in cui desideriamo che il personaggio o il gruppo di caratteri precedente appaia nella nostra corrispondenza.
Personaggi | Usa |
---|---|
* | Indica zero o più |
+ | Indica uno o più |
? | Indica zero o uno |
x{n} | Utilizzato per specificare il numero di volte ('n') che deve apparire il carattere precedente ('x') |
x{n, } | Utilizzato per specificare il numero minimo di volte ('n') che deve apparire il carattere precedente ('x') |
x{n, m} | Utilizzato per specificare il numero minimo ('n') e massimo ('m') di volte in cui deve apparire il carattere precedente ('x') |
Alcuni esempi sono:
Esempio | Descrizione | Esempi di stringhe corrispondenti |
---|---|---|
ciao!* | Corrisponde a qualsiasi stringa "ciao" seguita da zero o più caratteri "!" | "Ciao ”, “ciao! ”, ciao!! |
ciao!+ | Corrisponde a qualsiasi stringa 'ciao' seguita da uno o più caratteri '!' | "Ciao! ”, “ciao!! ” |
ciao!? | Corrisponde a qualsiasi stringa 'ciao' seguita da zero o uno '!' caratteri | "Ciao ”, “ciao! ” |
(ha){2,4} | Corrisponde a qualsiasi stringa che ripete il gruppo di caratteri "ha" da due a quattro volte | “ahah ”, “ahahah ”, “ahahahah ” |
O operatore
Personaggi | Usa |
---|---|
a|b | Corrisponde a qualsiasi stringa che contiene 'a' o 'b' |
[ ] | Viene usato per rappresentare una lista, quindi corrisponde a una stringa che contiene uno dei caratteri all'interno della lista |
Alcuni esempi sono:
Esempio | Descrizione | Esempi di stringhe corrispondenti |
---|---|---|
se(a|e) | Corrisponde a qualsiasi stringa che contenga il testo "se" seguito da una "a" o da una "e" | "vedi ”, “mare ” |
a[bcd] | Corrisponde a qualsiasi stringa che contiene una 'a' seguita da 'b', 'c' o 'd' | “ab ”, “ac ”, “annuncio ” |
Classi di caratteri
Gli operatori delle classi di caratteri consentono di abbinare i caratteri all'interno di una categoria (classe). Questi operatori offrono le loro negazioni, che sono le stesse dell'operatore normale ma in maiuscolo.
Personaggi | Usa |
---|---|
\d | Corrisponde a una singola cifra carattere |
\w | Corrisponde a una singola parola carattere (lettere, numeri e trattino basso) |
\s | Corrisponde a un singolo spazio bianco carattere, incluse tabulazioni e interruzioni di riga |
\D | Corrisponde a una singola non cifra carattere |
\W | Corrisponde a una singola non parola carattere (lettere, numeri e trattino basso) |
\S | Corrisponde a un singolo spazio non bianco carattere, incluse tabulazioni e interruzioni di riga |
. | Corrisponde a qualsiasi singolo carattere |
Bandiere
Regex di solito usa il modulo /pattern/
. Alla fine, possiamo utilizzare i seguenti flag:
Bandiera | Descrizione |
---|---|
g | Il globale flag viene utilizzato per cercare tutte le singole corrispondenze all'interno della stringa. Se non viene utilizzata, l'espressione tornerà dopo la prima corrispondenza |
m | La multilinea flag permette di usare ^ e $ come l'inizio e la fine di una riga, non l'inizio e la fine della stringa, che può contenere più righe |
i | Gli insensibili flag rende l'espressione regolare senza distinzione tra maiuscole e minuscole |
Conclusioni
Regex ha molti usi. Puoi combinare gli operatori semplici spiegati in questo articolo per creare ricerche di modelli complessi. Un esempio è convalidare un indirizzo email, questo può essere eseguito con la seguente espressione regolare:
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
Questo esempio corrisponde a una stringa completa per la quale ricerca un modello con il seguente ordine:
[\w-\.]+
:una combinazione di uno o più caratteri alfanumerici, trattini o punti@
:il simbolo @([\w-]+\.)+
:una o più combinazioni di uno o più caratteri alfanumerici o trattini terminati con un punto (per domini e sottodomini nell'e-mail come email.rackspace.)[\w-]{2,4}
:una combinazione di 2, 3 o 4 caratteri o trattini per la parte finale dell'e-mail (com)
Proprio come questo esempio, ce ne sono molti altri che possono essere facilmente implementati per scopi diversi.