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.
123456789101112131415import 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.
123456789101112131415161718192021222324252627import 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 patternr"\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 patternr"\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 patternr"\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 patternr"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 patternr"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 patternr"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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
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.
123456789101112131415import 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.
123456789101112131415161718192021222324252627import 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 patternr"\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 patternr"\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 patternr"\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 patternr"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 patternr"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 patternr"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.
Grazie per i tuoi commenti!