Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sintassi delle Regex e Pattern di Base | Introduzione alle espressioni regolari
Espressioni Regolari Python

Sintassi delle Regex e Pattern di Base

Scorri per mostrare il menu

Sintassi delle Regex: Elementi di Base

Le espressioni regolari, o regex, sono costruite utilizzando una combinazione di letterali, metacaratteri, classi di caratteri e quantificatori. Comprendere questi componenti è essenziale per scrivere pattern efficaci.

  • Letterali: caratteri ordinari che corrispondono a se stessi. Ad esempio, il pattern "cat" corrisponde esattamente alla stringa "cat";
  • Metacaratteri: simboli speciali che hanno significati specifici nelle regex. I metacaratteri più comuni includono:
    • . (punto): corrisponde a qualsiasi singolo carattere tranne il carattere di nuova riga;
    • ^: corrisponde all'inizio di una stringa;
    • $: corrisponde alla fine di una stringa;
    • *: corrisponde a zero o più occorrenze dell'elemento precedente;
    • +: corrisponde a una o più occorrenze dell'elemento precedente;
    • ?: corrisponde a zero o una occorrenza dell'elemento precedente.
  • Classi di caratteri: permettono di corrispondere a qualsiasi carattere appartenente a un insieme specifico. Ad esempio, [abc] corrisponde a "a", "b" o "c", e [0-9] corrisponde a qualsiasi cifra da 0 a 9.

Metacaratteri e Quantificatori Basati su Lettere Utili

  • \w: corrisponde a qualsiasi carattere alfanumerico (equivalente a [a-zA-Z0-9_]). Utile per corrispondere a lettere singole, cifre o underscore;
  • \W: corrisponde a qualsiasi carattere non alfanumerico (qualsiasi cosa non corrisposta da \w);
  • \d: corrisponde a qualsiasi cifra (equivalente a [0-9]);
  • \D: corrisponde a qualsiasi carattere non numerico;
  • \b: corrisponde a un confine di parola (la posizione tra un carattere di parola e un carattere non di parola). Utile per corrispondere a parole come unità intere;
  • \B: corrisponde a una posizione non su un confine di parola.

Quantificatori

I quantificatori specificano quante volte l'elemento precedente deve comparire:

  • *: corrisponde a zero o più volte; ad esempio, \w* corrisponde a qualsiasi sequenza di caratteri alfanumerici, inclusa la stringa vuota;
  • +: corrisponde a una o più volte; ad esempio, \w+ corrisponde a una o più lettere o cifre consecutive (come una parola);
  • ?: corrisponde a zero o una volta; ad esempio, \w? corrisponde a zero o un carattere alfanumerico;
  • {n}: corrisponde esattamente n volte; ad esempio, \w{3} corrisponde esattamente a tre caratteri alfanumerici consecutivi;
  • {n,}: corrisponde a n o più volte; ad esempio, \w{2,} corrisponde a due o più caratteri alfanumerici;
  • {n,m}: corrisponde a tra n e m volte; ad esempio, \w{2,5} corrisponde da due a cinque caratteri alfanumerici consecutivi.

Esempi in Python

  • re.findall(r"\w+", "Regex123 is fun!") restituisce tutte le parole: ["Regex123", "is", "fun"];
  • re.findall(r"\bcat\b", "The cat scattered the catalog.") corrisponde solo alla parola isolata "cat";
  • re.findall(r"\w{5}", "apple banana kiwi") trova tutte le sequenze di esattamente cinque caratteri alfanumerici: ["apple", "banan"].

Questi metacaratteri e quantificatori sono fondamentali per individuare lettere, parole e pattern simili a parole nei testi utilizzando la libreria re di Python.

123456789101112131415
import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)

In questo esempio, si utilizza la funzione re.findall() per cercare corrispondenze nella stringa "User123, admin42, guestX". Il pattern [0-9] corrisponde a qualsiasi cifra tra 0 e 9, quindi trova tutte le cifre individuali nel testo. Il pattern [a-z] corrisponde a qualsiasi lettera minuscola da "a" a "z", mentre [A-Z] corrisponde a qualsiasi lettera maiuscola da "A" a "Z". Ogni classe di caratteri è racchiusa tra parentesi quadre, specificando l'intervallo o l'insieme di caratteri da corrispondere. Questi pattern sono fondamentali per estrarre tipi specifici di caratteri da un testo.

123456789101112131415161718192021222324252627
import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)

Qui puoi vedere come utilizzare la funzione re.findall() di Python con vari pattern regex per estrarre informazioni dalla stringa "Hello_123 world! Regex is fun.". Ecco cosa fa ciascun pattern:

  • \w: Il pattern r"\w" corrisponde a qualsiasi carattere di parola, che include lettere (maiuscole e minuscole), cifre e l'underscore (_). Nella stringa fornita, trova ogni singolo carattere di parola, come 'H', 'e', 'l', 'o', '1', '2', '3' e così via.

  • \W: Il pattern r"\W" corrisponde a qualsiasi carattere non di parola. Questo include spazi, punteggiatura e simboli che non sono lettere, cifre o underscore. Nella stringa, trova caratteri come spazi, il punto esclamativo (!) e il punto (.).

  • \b: Il pattern r"\b\w+\b" utilizza i confini di parola (\b) per trovare parole complete. Qui, \w+ corrisponde a uno o più caratteri di parola, quindi estrae intere parole come 'Hello_123', 'world', 'Regex', 'is' e 'fun' come elementi separati.

  • Quantificatore *: Il pattern r"o\w*" corrisponde al carattere 'o' seguito da zero o più caratteri di parola. Questo significa che corrisponderà a 'o' anche se non è seguito da altri caratteri di parola, oppure catturerà una sequenza che inizia con 'o' e continua con eventuali caratteri di parola successivi. Nella stringa, trova 'o_123' (da 'Hello_123') e 'orld' (da 'world').

  • Quantificatore +: Il pattern r"R\w+" corrisponde al carattere 'R' seguito da uno o più caratteri di parola. Utile per trovare parole che iniziano con 'R' e continuano con altri caratteri di parola. Nella stringa, trova 'Regex'.

  • Quantificatore ?: Il pattern r"le?" corrisponde alla lettera 'l' seguita opzionalmente da 'e'. Il quantificatore ? indica che il carattere precedente ('e') può comparire zero o una volta. Questo pattern corrisponderà sia a 'l' che a 'le' ovunque compaiano nella stringa.

Ciascuno di questi pattern evidenzia una caratteristica chiave delle espressioni regolari: la corrispondenza di tipi specifici di caratteri, confini e elementi ripetuti, facilitando l'estrazione o l'analisi di informazioni da testo in Python.

question mark

Cosa corrisponde il pattern regex [a-z]?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sintassi delle Regex e Pattern di Base

Sintassi delle Regex: Elementi di Base

Le espressioni regolari, o regex, sono costruite utilizzando una combinazione di letterali, metacaratteri, classi di caratteri e quantificatori. Comprendere questi componenti è essenziale per scrivere pattern efficaci.

  • Letterali: caratteri ordinari che corrispondono a se stessi. Ad esempio, il pattern "cat" corrisponde esattamente alla stringa "cat";
  • Metacaratteri: simboli speciali che hanno significati specifici nelle regex. I metacaratteri più comuni includono:
    • . (punto): corrisponde a qualsiasi singolo carattere tranne il carattere di nuova riga;
    • ^: corrisponde all'inizio di una stringa;
    • $: corrisponde alla fine di una stringa;
    • *: corrisponde a zero o più occorrenze dell'elemento precedente;
    • +: corrisponde a una o più occorrenze dell'elemento precedente;
    • ?: corrisponde a zero o una occorrenza dell'elemento precedente.
  • Classi di caratteri: permettono di corrispondere a qualsiasi carattere appartenente a un insieme specifico. Ad esempio, [abc] corrisponde a "a", "b" o "c", e [0-9] corrisponde a qualsiasi cifra da 0 a 9.

Metacaratteri e Quantificatori Basati su Lettere Utili

  • \w: corrisponde a qualsiasi carattere alfanumerico (equivalente a [a-zA-Z0-9_]). Utile per corrispondere a lettere singole, cifre o underscore;
  • \W: corrisponde a qualsiasi carattere non alfanumerico (qualsiasi cosa non corrisposta da \w);
  • \d: corrisponde a qualsiasi cifra (equivalente a [0-9]);
  • \D: corrisponde a qualsiasi carattere non numerico;
  • \b: corrisponde a un confine di parola (la posizione tra un carattere di parola e un carattere non di parola). Utile per corrispondere a parole come unità intere;
  • \B: corrisponde a una posizione non su un confine di parola.

Quantificatori

I quantificatori specificano quante volte l'elemento precedente deve comparire:

  • *: corrisponde a zero o più volte; ad esempio, \w* corrisponde a qualsiasi sequenza di caratteri alfanumerici, inclusa la stringa vuota;
  • +: corrisponde a una o più volte; ad esempio, \w+ corrisponde a una o più lettere o cifre consecutive (come una parola);
  • ?: corrisponde a zero o una volta; ad esempio, \w? corrisponde a zero o un carattere alfanumerico;
  • {n}: corrisponde esattamente n volte; ad esempio, \w{3} corrisponde esattamente a tre caratteri alfanumerici consecutivi;
  • {n,}: corrisponde a n o più volte; ad esempio, \w{2,} corrisponde a due o più caratteri alfanumerici;
  • {n,m}: corrisponde a tra n e m volte; ad esempio, \w{2,5} corrisponde da due a cinque caratteri alfanumerici consecutivi.

Esempi in Python

  • re.findall(r"\w+", "Regex123 is fun!") restituisce tutte le parole: ["Regex123", "is", "fun"];
  • re.findall(r"\bcat\b", "The cat scattered the catalog.") corrisponde solo alla parola isolata "cat";
  • re.findall(r"\w{5}", "apple banana kiwi") trova tutte le sequenze di esattamente cinque caratteri alfanumerici: ["apple", "banan"].

Questi metacaratteri e quantificatori sono fondamentali per individuare lettere, parole e pattern simili a parole nei testi utilizzando la libreria re di Python.

123456789101112131415
import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)

In questo esempio, si utilizza la funzione re.findall() per cercare corrispondenze nella stringa "User123, admin42, guestX". Il pattern [0-9] corrisponde a qualsiasi cifra tra 0 e 9, quindi trova tutte le cifre individuali nel testo. Il pattern [a-z] corrisponde a qualsiasi lettera minuscola da "a" a "z", mentre [A-Z] corrisponde a qualsiasi lettera maiuscola da "A" a "Z". Ogni classe di caratteri è racchiusa tra parentesi quadre, specificando l'intervallo o l'insieme di caratteri da corrispondere. Questi pattern sono fondamentali per estrarre tipi specifici di caratteri da un testo.

123456789101112131415161718192021222324252627
import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)

Qui puoi vedere come utilizzare la funzione re.findall() di Python con vari pattern regex per estrarre informazioni dalla stringa "Hello_123 world! Regex is fun.". Ecco cosa fa ciascun pattern:

  • \w: Il pattern r"\w" corrisponde a qualsiasi carattere di parola, che include lettere (maiuscole e minuscole), cifre e l'underscore (_). Nella stringa fornita, trova ogni singolo carattere di parola, come 'H', 'e', 'l', 'o', '1', '2', '3' e così via.

  • \W: Il pattern r"\W" corrisponde a qualsiasi carattere non di parola. Questo include spazi, punteggiatura e simboli che non sono lettere, cifre o underscore. Nella stringa, trova caratteri come spazi, il punto esclamativo (!) e il punto (.).

  • \b: Il pattern r"\b\w+\b" utilizza i confini di parola (\b) per trovare parole complete. Qui, \w+ corrisponde a uno o più caratteri di parola, quindi estrae intere parole come 'Hello_123', 'world', 'Regex', 'is' e 'fun' come elementi separati.

  • Quantificatore *: Il pattern r"o\w*" corrisponde al carattere 'o' seguito da zero o più caratteri di parola. Questo significa che corrisponderà a 'o' anche se non è seguito da altri caratteri di parola, oppure catturerà una sequenza che inizia con 'o' e continua con eventuali caratteri di parola successivi. Nella stringa, trova 'o_123' (da 'Hello_123') e 'orld' (da 'world').

  • Quantificatore +: Il pattern r"R\w+" corrisponde al carattere 'R' seguito da uno o più caratteri di parola. Utile per trovare parole che iniziano con 'R' e continuano con altri caratteri di parola. Nella stringa, trova 'Regex'.

  • Quantificatore ?: Il pattern r"le?" corrisponde alla lettera 'l' seguita opzionalmente da 'e'. Il quantificatore ? indica che il carattere precedente ('e') può comparire zero o una volta. Questo pattern corrisponderà sia a 'l' che a 'le' ovunque compaiano nella stringa.

Ciascuno di questi pattern evidenzia una caratteristica chiave delle espressioni regolari: la corrispondenza di tipi specifici di caratteri, confini e elementi ripetuti, facilitando l'estrazione o l'analisi di informazioni da testo in Python.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 2
some-alt