Espressione regolare: cosa significa

click fraud protection

Che cos'è un'espressione regolare?

Regex, o espressioni regolari, sono un markup di corrispondenza del modello che programmatori utilizzare per cercare determinati modelli nel testo. Le espressioni regolari possono cercare praticamente qualsiasi cosa, a seconda di come le strutturi; sono usati dappertutto dai programmatori perché sono preziosi per aiutare i computer a ordinare rapidamente i dati e filtrare le sciocchezze che altrimenti potrebbero causare errori.

Le espressioni regolari tendono a sembrare spaventose, specialmente per i non programmatori. Basta guardare questo:

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+

Realisticamente, non è poi così male; quello corrisponde agli indirizzi email. Come vedrai, le espressioni possono essere suddivise in singoli caratteri, ognuno dei quali dice al programma cosa cercare.

Le espressioni regolari sono quasi universali. Lo stesso generale sintassi si applica a tutte le lingue con solo lievi variazioni qua e là. Questa guida contiene esempi sia di Python che di JavaScript, oltre alla semplice vecchia espressione regolare. Se lavori con una lingua diversa, non preoccuparti. Quasi tutto si applicherà anche alla tua lingua preferita.

instagram viewer

Nozioni di base sull'espressione regolare

Tecnicamente, non ci sono molte cose che non possono essere considerate espressioni regolari, perché le stringhe di testo letterali sono davvero semplici. Se dovessi usare 'abcde' come espressione regolare, il linguaggio di programmazione cercherebbe quella stringa esatta.

Il primo carattere di corrispondenza più dinamico a cui dare un'occhiata è il '.' personaggio. In questo contesto, il carattere punto è un carattere jolly. Se stai cercando con esso, il tuo programma restituirà qualsiasi carattere che trova come corrispondenza.

Quindi, cosa succede se vuoi cercare un punto letterale? Neanche questo è difficile. Quando vuoi usare un punto letterale, aggiungi una barra rovesciata prima di esso, in questo modo: '\.'

Caratteri barra rovesciata

La barra rovesciata gioca molti più ruoli qui, però. La maggior parte dei principali caratteri regex include una barra rovesciata.

Cifre delle espressioni regolari
Trovare cifre con Regex in Python.

Dai un'occhiata ad alcuni esempi:

  • \d: Cifre da 0 a 9
  • \w: lettere, cifre e trattino basso "Caratteri delle parole"
  • \s: caratteri di spaziatura, inclusi tabulazioni, nuove righe e spazi regolari

Se usi la lettera maiuscola invece con uno di questi, otterrai il contrario. Ad esempio, '\D' ti dà tutto tranne le cifre.

Classi

Il caratteri barra rovesciata sono buoni, ma sono ancora un po' rigidi. In genere, vorrai abbinare lettere, numeri o alcuni caratteri speciali.

Classi di espressioni regolari
Utilizzo delle classi Regex per trovare lettere in Python

Metti i caratteri che vuoi far corrispondere tra una coppia di parentesi quadre '[]' e il tuo programma abbinerà a uno di essi. Questa è chiamata una classe regex.

[abcd1234]

L'esempio sopra è ancora inefficiente. Invece, puoi usare un trattino per specificare un intervallo; ad esempio, tutte lettere minuscole:

[a-z]

Puoi anche elencare gli intervalli. L'espressione seguente corrisponde a tutte le lettere e cifre:

[a-zA-Z0-9]

Se intendi includere il trattino nel tuo set di caratteri, aggiungilo alla fine per evitare che venga valutato. Funziona anche con altri caratteri speciali.

[a-zA-Z0-9_.+-]

Come con i caratteri barra rovesciata, anche qui puoi ottenere il risultato inverso. Metti un '^' all'inizio della tua classe per escluderli dai tuoi risultati. Ciò escluderà le cifre e diversi caratteri speciali dai risultati:

[^0-9_+.-]

Gruppi

I gruppi utilizzano una serie di parentesi per separare l'espressione. Raggruppano i dati, consentendo al tuo programma di individuarli e utilizzarli. Quando un programma rimuove il ' http://' da un indirizzo web, sta usando i gruppi regex per farlo. L'espressione regolare consente di indirizzare determinati criteri e i gruppi consentono di separare le sezioni.

Gruppi di espressioni regolari
I gruppi Regex aiutano a trovare gli URL in JavaScript.

I gruppi ti consentono anche di scegliere tra un modello o l'altro. Impiegano un singolo '|' agire come "o" nell'espressione. L'espressione seguente corrisponderà a uno di questi: .com, .org, .net, .edu o .gov.

\.(com|org|net|edu|gov)

quantificatori

I quantificatori sono esattamente come suonano. Dicono all'espressione la quantità di un personaggio che stai cercando. Questi sono i quantificatori disponibili:

  • *: zero o più
  • +: uno o più
  • ?: Zero o uno
  • {3}: L'importo tra parentesi

Posiziona uno di questi quantificatori alla fine del carattere o della classe di cui vuoi specificare la quantità. Questo esempio cerca i numeri di telefono standard a sette cifre:

\d{3}[.*-]\d{3}[.*-]\d{4}

Ancore e confini

Le espressioni regolari ti consentono di cercare modelli in base alla loro posizione all'interno di una stringa di testo o intorno a una parola.

Ancoraggi per espressioni regolari Regular
Le ancore Regex utilizzano il posizionamento per trovare una corrispondenza in JavaScript.

Queste sono le tue opzioni principali:

  • ^: L'inizio di una stringa
  • $: la fine di una stringa
  • \b: Limite di parola (l'inizio o la fine di una parola)

Se vuoi trovare solo stringhe che iniziano con una lettera, puoi provare:

^[a-zA-Z]

Supponi di voler trovare solo la parola "it", non le parole che contengono le lettere I e T; è lì che useresti i confini delle parole.

\b (i| I)t\b

Pensieri finali

Le espressioni regolari possono farti risparmiare un sacco di grattacapi durante la programmazione. Immagina di provare a scrivere la logica per realizzare uno degli esempi in questo articolo. Sarebbe un disastro terribile. Una volta che ti sentirai a tuo agio con loro, probabilmente ti ritroverai davvero a goderti la potenza e la flessibilità delle espressioni regolari.

instagram story viewer