RegEx Python

RegEx o espressione regolare è una sequenza di caratteri che forma il modello di ricerca.

RegEx può essere utilizzato per verificare se una stringa contiene il modello di ricerca specificato.

RegEx

Python fornisce un modulo chiamato re Il pacchetto built-in, utilizzabile per gestire le espressioni regolari。

Importa re Modulo:

import re

RegEx in Python

Importa re Dopo il modulo,puoi iniziare a usare l'espressione regolare:

Esempio

Ricerca la stringa per vedere se inizia con "China" e termina con "country":

import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)

Eseguire l'istanza

Funzioni RegEx

re Il modulo fornisce un insieme di funzioni che ci permettono di ricercare le stringhe per corrispondenze:

Funzione Descrizione
findall Restituisce una lista che contiene tutte le corrispondenze
search Se esiste una corrispondenza in qualsiasi posizione della stringa, restituisce un oggetto Match
split Restituisce una lista che divide la stringa in ogni corrispondenza
sub Sostituisci una o più corrispondenze con una stringa

Meta-carattere

I meta-caratteri sono caratteri che hanno un significato speciale:

Carattere Descrizione Esempio TIY
[] Un insieme di caratteri "[a-m]" Prova:
\ Sequenza speciale illustrativa(può anche essere usata per escapare i caratteri speciali) "\d" Prova:
. Qualsiasi carattere(eccetto il carattere di newline) "he..o" Prova:
^ Inizia con "^hello" Prova:
$ Finisce con "world$" Prova:
* Apparizioni zero o più volte "aix*" Prova:
+ Una o più apparizioni "aix+" Prova:
{} Apparizioni esattamente specificate "al{2}" Prova:
| O uno o l'altro "falls|stays" Prova:
() Cattura e raggruppamento

Sequenza speciale

Una sequenza speciale indica \ Seguito da uno dei caratteri dell'elenco seguente, ha un significato speciale:

Carattere Descrizione Esempio TIY
\A Se il carattere specificato si trova all'inizio della stringa, restituisce la corrispondenza "\AThe" Prova:
\b Restituisce una corrispondenza in cui il carattere specificato si trova all'inizio o alla fine di una parola r"\bain"
r"rain\b"
Prova:
Prova:
\B Restituisce una corrispondenza in cui il carattere specificato esiste, ma non è all'inizio di una parola(o alla fine) r"\Bain"
r"rain\B"
Prova:
Prova:
\d Restituisce una corrispondenza in cui la stringa contiene numeri(数字 0-9) "\d" Prova:
\D Restituisce una corrispondenza in cui la stringa non contiene numeri "\D" Prova:
\s Restituisce una corrispondenza in cui la stringa contiene spazi bianchi "\s" Prova:
\S Restituisce una corrispondenza in cui la stringa non contiene spazi bianchi "\S" Prova:
\w Restituisce una corrispondenza in cui la stringa contiene qualsiasi carattere word
(从 a 到 Z 的字符,从 0 到 9 的数字和下划线 _ 字符)
"\w" Prova:
\W Restituisce una corrispondenza in cui la stringa non contiene alcun carattere word "\W" Prova:
\Z Se restituisce la corrispondenza se il carattere specificato si trova alla fine della stringa "Spain\Z" Prova:

Set(集合)

L'insieme (Set) è formato da un paio di parentesi quadre [] Un insieme di caratteri, con significato speciale:

Set Descrizione Prova:
[arn] Restituisce una corrispondenza che contiene uno dei caratteri specificati (a, r o n) Prova:
[a-n] Restituisce le corrispondenze di qualsiasi carattere minuscolo tra a e n Prova:
[^arn] Restituisce le corrispondenze di qualsiasi carattere diverso da a, r e n Prova:
[0123] Restituisce le corrispondenze che contengono qualsiasi numero specificato (0, 1, 2 o 3) Prova:
[0-9] Restituisce le corrispondenze di qualsiasi numero tra 0 e 9 Prova:
[0-5][0-9] Restituisce le corrispondenze di qualsiasi numero tra 0 e 9 Prova:
[a-zA-Z] Restituisce le corrispondenze di qualsiasi carattere tra a e z, minuscolo o maiuscolo Prova:
[+] Nel set, +, *, ., |, (), $, {} non hanno significato speciale, quindi [+] rappresenta: restituisce tutte le corrispondenze di ogni carattere + nella stringa Prova:

La funzione findall()

findall() La funzione restituisce una lista che contiene tutte le corrispondenze.

Esempio

Stampa la lista di tutte le corrispondenze:

import re
str = "China is a great country"
x = re.findall("a", str)
print(x)

Eseguire l'istanza

Questa lista contiene le corrispondenze trovate nell'ordine in cui sono state trovate.

Se non viene trovata una corrispondenza, viene restituita una lista vuota:

Esempio

Se non viene trovata una corrispondenza, viene restituita una lista vuota:

import re
str = "China is a great country"
x = re.findall("USA", str)
print(x)

Eseguire l'istanza

La funzione search()

search() La funzione ricerca la corrispondenza nella stringa e restituisce un oggetto Match se esiste una corrispondenza.

Se ci sono più corrispondenze, viene restituita solo la prima corrispondenza:

Esempio

Cerca il primo carattere di spaziatura nella stringa:

import re
str = "China is a great country"
x = re.search("\s", str)
print("La prima carattere di spaziatura è situato nella posizione:", x.start())

Eseguire l'istanza

Se non viene trovata una corrispondenza, viene restituito il valore: Nessuno:

Esempio

Ricerca senza restituire la corrispondenza:

import re
str = "China is a great country"
x = re.search("USA", str)
print(x)

Eseguire l'istanza

La funzione split()

split() La funzione restituisce una lista in cui la stringa viene divisa ogni volta che si verifica una corrispondenza:

Esempio

Dividi la stringa in ogni carattere di spaziatura:

import re
str = "China is a great country"
x = re.split("\s", str)
print(x)

Eseguire l'istanza

Puoi specificare maxsplit Parametro per controllare il numero di occorrenze:

Esempio

Dividi la stringa solo alla prima occorrenza:

import re
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)

Eseguire l'istanza

La funzione sub()

sub() La funzione sostituisce la corrispondenza con il testo selezionato:

Esempio

Con il numero 9 sostituisci ogni carattere di spaziatura:

import re
str = "China is a great country"
x = re.sub("\s", "9", str)
print(x)

Eseguire l'istanza

Puoi specificare count Parametro per controllare il numero di sostituzioni:

Esempio

Sostituire le prime due occorrenze:

import re
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

Eseguire l'istanza

Oggetto Match

L'oggetto Match è un oggetto che contiene informazioni sulla ricerca e i risultati.

Nota:Se non ci sono corrispondenze, viene restituito il valore Nessunoinvece di Oggetto Match.

Esempio

Esegui una ricerca che restituirà un oggetto Match:

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # Stampa un oggetto

Eseguire l'istanza

L'oggetto Match fornisce attributi e metodi per ottenere informazioni sulla ricerca e i risultati:

  • span() Il tuple restituito contiene la posizione di inizio e fine della corrispondenza
  • .string Restituire la stringa passata alla funzione
  • group() Restituire la parte di stringa corrispondente

Esempio

Stampare la posizione della prima corrispondenza trovata (posizione di inizio e fine).

Cerca ogni parola che inizia con la lettera "C" in maiuscolo con l'espressione regolare:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.span())

Eseguire l'istanza

Esempio

Stampare la stringa passata alla funzione:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.string)

Eseguire l'istanza

Esempio

Stampare la parte di stringa corrispondente.

Cerca ogni parola che inizia con la lettera "C" in maiuscolo con l'espressione regolare:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.group())

Eseguire l'istanza

Nota:Se non ci sono corrispondenze, viene restituito il valore Nessunoinvece di Oggetto Match.