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.