Espressioni regolari in Python: una guida per principianti

Contenuti

Questo post è stato pubblicato come parte del Blogathon sulla scienza dei dati

Espressioni regolari, riconosciuto anche come “regex” oh “espressione regolare”, sono usati per abbinare le stringhe di testo, come personaggi, particolari parole o modelli di caratteri. Significa che possiamo abbinare ed estrarre qualsiasi modello di stringa dal testo con l'aiuto di espressioni regolari. Ho usato due termini, incontro e estratto e entrambi i termini hanno un significato leggermente diverso. Potrebbero esserci casi in cui vogliamo abbinare un modello specifico ma estrarne un sottoinsieme. Come esempio, vogliamo estrarre i nomi dei borsisti di dottorato da un elenco di nomi di persone in un'organizzazione.

Per questo caso, lo faremo incontro la parola chiave “Dottor XYZ” e estratto solo il nome, In altre parole, “XYZ”, non il prefisso “Dott.” della lista. Regex è molto utile per cercare nei testi, email e documenti di grandi dimensioni. Regex è anche chiamato “linguaggio di programmazione per la corrispondenza delle stringhe”. Prima di immergerci nell'espressione regolare e nella sua implementazione in Python, è fondamentale conoscerne le applicazioni nel mondo reale.

Applicazioni

Convalida del modulo

L'uso più comune delle espressioni regolari è la convalida del modulo, In altre parole, convalida e-mail, convalida della password, convalida del numero di telefono e molti altri campi del modulo.

dettagli del conto bancario

Avrai notato che ogni banca ha un codice IFSC per le sue diverse filiali che inizia con il nome della banca. Il numero della carta di credito è composto da 16 cifre e le prime cifre rappresentano se la carta è Master, Visa o Rupay. In tutti questi casi, viene utilizzata l'espressione regolare.

Elaborazione dati

Come dimenticare l'importanza delle espressioni regolari nel data mining?? Quando i dati sono presenti in forma non strutturata, In altre parole, in forma di testo, è necessario convertirli in numeri per addestrare il modello. Perché, l'espressione regolare svolge un ruolo importante nell'analisi dei dati, trova modelli nei dati e, finalmente, eseguire operazioni sul set di dati.

PNL

La PNL è una procedura attraverso la quale un computer comprende e genera il linguaggio umano. e PNL, le espressioni regolari vengono utilizzate per eliminare le parole non necessarie, In altre parole, ferma le parole di testo, che aiuta a pulire i dati. Regex viene utilizzato anche per analizzare testi e, perché, aiuta nella previsione dell'algoritmo per elaborare i dati.

Piattaforme di social media

Piattaforme di social media come Google, Facebook, Twitter fornisce varie tecniche di ricerca, che sono diversi ed efficienti da una normale ricerca. crema, se conosci queste tecniche, può esplorare molto di più. Tutti questi tecnici utilizzano espressioni regolari nel backend per elaborare queste ricerche.

Puoi pensare ad altre app regex ogni volta che è richiesta la corrispondenza del modello.

Modelli di caratteri jolly

Le singole unità più piccole attraverso le espressioni regolari che vengono formate sono chiamate modelli di caratteri jolly.. L'elenco dei modelli comunemente usati è

^

Questo carattere jolly corrisponde ai caratteri all'inizio di una riga.

PS

Questo carattere jolly corrisponde ai caratteri alla fine della riga.

.

Questo carattere jolly corrisponde a qualsiasi carattere sulla riga.

S

Questo carattere jolly viene utilizzato per abbinare lo spazio in una stringa.

S

Questo carattere jolly corrisponde a caratteri che non sono spazi bianchi.

D

Questo carattere jolly corrisponde a una cifra.

*

Questo carattere jolly ripete qualsiasi carattere precedente zero o più volte. Corrisponde alla stringa più lunga possibile.

*?

Questo carattere jolly ripete anche qualsiasi carattere o carattere precedente zero o più volte. Nonostante questo, abbina la stringa più corta seguendo lo schema.

+

Questo carattere jolly ripete qualsiasi carattere precedente una o più volte. Abbina la stringa più lunga possibile seguendo lo schema.

+?

Questo carattere jolly ripete qualsiasi carattere precedente una o più volte. Nonostante questo, corrisponde alla stringa più corta possibile seguendo lo schema.

[aeiou]

Corrisponde a qualsiasi carattere in un set di caratteri specificato.

[^XYZ]

Corrisponde a qualsiasi personaggio non incluso nel set.

[a-z0-9]

Corrisponde a qualsiasi carattere fornito in az o 0-9.

(

Questo carattere jolly rappresenta l'inizio dell'estrazione della stringa.

)

Questo carattere jolly rappresenta la fine dell'estrazione della stringa.

Esempi di

Se vuoi estrarre numeri da un documento, l'espressione regolare sarà: [0-9]+

Se vuoi estrarre tutti i caratteri diversi dai numeri, l'espressione regolare sarà: [^0-9]+

Per estrarre un modello in modo che un nome inizi con “UN” e finisci con “h”, l'espressione regolare sarà: ^ A[a-zA-Z]+ h $

Un'espressione regolare più complessa se si desidera estrarre l'indirizzo e-mail è: ^[a-zA-Z][a-zA-Z0-9 ._ + -][e-mail protetta][A-Za-z]+.[A-Za-z]

Regex edificio!

Regex può essere molto complesso. Comprendere e costruire espressioni regolari complesse è un'arte che si impara facendo. Puoi fare riferimento qui per imparare a costruire espressioni regolari complesse.

Implementazione Python

Regex è fornito da molti linguaggi di programmazione, come pitone, Giava, javascript, eccetera. Anche se il concetto è lo stesso ovunque comunque, potrebbe trovare alcune differenze nelle diverse lingue.

Ora vedremo le varie funzioni fornite da python per implementare le espressioni regolari insieme al tuo codice.

Python non fornisce un modulo regex integrato. È necessario installarlo utilizzando il comando pip e quindi importarlo nell'IDE Python. Posteriormente almacenamos algo de texto en una variabile llamada cadena.

pip install re
import re
string = "Virat Kohli è uno dei più grandi giocatori della squadra di cricket indiana.nÈ nato a novembre 5, 1988, in Delhi.nHa completato la sua formazione presso la Vishal Bharti School.nIn 2008, ha vinto la Coppa del Mondo per l'India sui figli di Omar sotto 19 anni. A partire dal 2011, ha iniziato le partite di test cricket. nÈ attualmente il capitano di tutti e tre i formati di India.n In 2017, Virat Kohli si è sposato con l'attrice cinematografica hindi Anushka Sharma.nVirat ha vinto due volte il Man of the Tour, in 2014 e 2016. nDa 2008, ha rappresentato le squadre in casa di Delhi. nHa ricevuto l'Arjuna Award in riconoscimento dei successi del cricket internazionale."

metodo di corrispondenza

Questa funzione cerca il pattern RE all'inizio della stringa e restituisce l'oggetto match della stringa. È possibile inserire il valore nell'oggetto tramite la funzione di gruppo (). La sintassi della funzione match è

ri.match (Modello, catena, banderas)

il Modello rappresenta l'espressione regolare, il corda rappresenta il testo da cercare per corrispondere al modello, e le bandiere rappresentano i modificatori. Se vogliamo applicare qualsiasi condizione Nell'accoppiamento usiamo le bandiere. Si tratta di un parametro facoltativo.

codice python

pattern=r'(^[V].+?)s'
print(ri.match(modello,corda))      # Returns the match object
print(ri.match(modello,corda).gruppo()) #Estrazione di valore dall'oggetto

PRODUZIONE

Virat ·

Questa funzione corrisponde al fatto che la prima stringa inizi con v.

metodo di ricerca

Questa funzione cerca la prima apparizione del modello Re nella stringa specificata. Questa funzione restituisce anche l'oggetto corrispondente se viene trovato il modello; caso opposto, non restituisce alcun. La sintassi è

ricerca (Modello, catena)

Notare che incontro trova una corrispondenza solo all'inizio della stringa, mentre Cercare trova una prima corrispondenza in qualsiasi punto della catena.

codice python

pattern=r'[0-9]+'
re.search(modello,corda)      # Returns the match object
print(ricerca(modello,corda).gruppo())

PRODUZIONE

Questa funzione restituisce il primo numero presente nel testo.

metodo findall

Questa funzione restituirà tutte le occorrenze del modello Re nella catena. La sintassi findall è

re.trovare (Modello, corda)

codice python

pattern=r'[0-9]+'
print(re.trovare(modello,corda))

PRODUZIONE

['5', '1988', '2008', '19', '2011', '2017', '2014', '2016', '2008']

Questa funzione estrae tutti i numeri dal testo.

sottometodo

Questa funzione viene utilizzata per sostituire tutte le occorrenze del pattern RE con la nuova stringa / Modello. La sintassi è:

re.sub (Modello, Rispondere, catena)

codice python

repl = r'Chiku ‘

stampare (re.sub (Modello, Rispondere, catena))

PRODUZIONE

"Chiku Kohli è uno dei più grandi giocatori della squadra di cricket indiana. È nato a novembre 5, 1988, in Delhi.nHa completato la sua formazione presso la Vishal Bharti School.nIn 2008, ha vinto la Coppa del Mondo per l'India sui figli di Omar sotto 19 anni. A partire dal 2011, ha iniziato le partite di test cricket. nÈ attualmente il capitano di tutti e tre i formati di India.n In 2017, Virat Kohli si è sposato con l'attrice cinematografica hindi Anushka Sharma.nChiku ha vinto due volte il Man of the Tour, in 2014 e 2016. nDa 2008, ha rappresentato le squadre in casa di Delhi. nHa ricevuto l'Arjuna Award in riconoscimento dei successi del cricket internazionale."

Questo ruolo sostituisce Virat con Chiku, In altre parole, Il soprannome di Kohli.

Queste sono le funzioni più utilizzate del modulo “Rif”. Puoi fare riferimento re documentazione per ulteriori dettagli.

Riepilogo

Iniziamo con una definizione di base delle espressioni regolari e poi discutiamo delle sue varie applicazioni. Successivamente abbiamo imparato a formare espressioni regolari usando i caratteri jolly. Finalmente, implementiamo diversi strumenti regex in Python.

Riferimenti

foto principale – https://www.codingforentrepreneurs.com/blog/python-regular-expressions/

A proposito di me

Ciao! Soy Ashish Choudhary. Sto studiando B.Tech alla JC Bose University of Science and Technology. La scienza dei dati è la mia passione e sono orgoglioso di scrivere blog interessanti ad essa correlati. Sentiti libero di contattarmi a LinkedIn.

Il supporto mostrato in questo post non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.