Maybaygiare.org

Blog Network

RegEx Python: ri.partita (), ri.ricerca (), ri.findall () con Esempio

Che cos’è l’espressione regolare in Python?

Un’espressione regolare (RE) in un linguaggio di programmazione è una stringa di testo speciale utilizzata per descrivere un modello di ricerca. È estremamente utile per estrarre informazioni da testo come codice, file, log, fogli di calcolo o persino documenti.

Mentre si utilizza l’espressione regolare Python, la prima cosa da riconoscere è che tutto è essenzialmente un carattere, e stiamo scrivendo modelli per abbinare una sequenza specifica di caratteri indicata anche come stringa. Ascii o lettere latine sono quelli che sono sulle tastiere e Unicode viene utilizzato per abbinare il testo straniero. Include cifre e punteggiatura e tutti i caratteri speciali come##@!% , ecc.

In questo tutorial RegEx Python, impareremo-

  • Sintassi delle espressioni regolari
  • Esempio di w+ e ^ Expression
  • Esempio di espressione \s in re.funzione split
  • Utilizzando metodi di espressione regolare
  • Utilizzando re.match ()
  • Trovare modello nel testo (ri.cerca ())
  • Usando re.findall per il testo
  • Python Flags
  • Esempio di re.M o Flag multilinea

Ad esempio, un’espressione regolare Python potrebbe dire a un programma di cercare un testo specifico dalla stringa e quindi di stampare il risultato di conseguenza. L’espressione può includere

  • Corrispondenza del testo
  • Ripetizione
  • Ramificazione
  • Composizione di pattern ecc.

L’espressione regolare o RegEx in Python è indicata come RE (REs, regexes o regex pattern) vengono importati tramite il modulo re. Python supporta l’espressione regolare attraverso le librerie. RegEx in Python supporta varie cose come modificatori, identificatori e caratteri di spazio bianco.

Identificatori Modificatori spazio Bianco caratteri Escape richiesto
\d= qualsiasi numero (una cifra) \d rappresenta una cifra.Ex: \ d{1,5} dichiarerà una cifra compresa tra 1,5 come 424,444,545 ecc. \n = nuova linea . + * ? $ ^ () {} | \
\D= altro che un numero (un non-digit) + = corrisponde a 1 o più \s= spazio
\s = spazio (tab,spazio,nuova riga ecc.) ? = matches 0 or 1 \t =tab
\S= anything but a space * = 0 or more \e = escape
\w = letters ( Match alphanumeric character, including “_”) $ match end of a string \r = carriage return
\W =anything but letters ( Matches a non-alphanumeric character excluding “_”) ^ match start of a string \f= form feed
. = anything but letters (periods) | matches either or x/y —————–
\b = any character except for new line = range or “variance” —————-
\. {x} = questa quantità di codice precedente —————–

Espressione Regolare(RE) Sintassi

import re
  • “re” del modulo incluso con Python utilizzato principalmente per la stringa di ricerca e manipolazione
  • Anche utilizzato frequentemente per la pagina web “Scraping” (estrarre grande quantità di dati da siti web)

iniziamo l’espressione tutorial con questo semplice esercizio, utilizzando le espressioni (w+) e (^).

Esempio di w + e ^ Espressione

  • “^”: Questa espressione corrisponde all’inizio di una stringa
  • “w+”: Questa espressione corrisponde al carattere alfanumerico nella stringa

Qui vedremo un esempio di RegEx Python di come possiamo usare w+ e ^ espressione nel nostro codice. Copriamo la funzione ri.findall () in Python, più avanti in questo tutorial, ma per un po ‘ ci concentriamo semplicemente su \ w+ e \ ^ expression.

Ad esempio, per la nostra stringa “guru99, l’educazione è divertente” se eseguiamo il codice con w+ e^, darà l’output “guru99”.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall (), Flags

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print(r1)

Ricorda, se rimuovi il segno +dal w+, l’output cambierà e darà solo il primo carattere della prima lettera, cioè

Esempio di espressione \s in re.funzione split

  • “s”: Questa espressione viene utilizzata per creare uno spazio nella stringa

Per capire come funziona questa RegEx in Python, iniziamo con un semplice esempio di RegEx Python di una funzione split. Nell “esempio, abbiamo diviso ogni parola utilizzando il” re.split” funzione e allo stesso tempo abbiamo usato expression \s che permette di analizzare ogni parola nella stringa separatamente.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall (), Flags

Quando esegui questo codice ti darà l’output .

Ora, vediamo cosa succede se rimuovi “\” da s. Non c’è un alfabeto “s” nell’output, questo perché abbiamo rimosso ” \ “dalla stringa, e valuta” s “come un carattere normale e quindi dividi le parole ovunque trovi” s ” nella stringa.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall (), Flags

Allo stesso modo, ci sono serie di altre espressioni regolari Python che puoi usare in vari modi in Python come \d,\D,$,\., \ b, ecc.

Ecco il codice completo

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print((re.split(r'\s','we are splitting the words')))print((re.split(r's','split the words')))

Avanti, andremo a vedere i tipi di metodi che vengono utilizzati con l’espressione regolare in Python.

Utilizzando metodi di espressione regolare

Il pacchetto “re” fornisce diversi metodi per eseguire effettivamente query su una stringa di input. Vedremo i metodi di re in Python:

  • re.partita ()
  • ri.ricerca ()
  • re.findall ()

Nota: In base alle espressioni regolari, Python offre due diverse operazioni primitive. Il metodo match controlla una corrispondenza solo all’inizio della stringa mentre search controlla una corrispondenza in qualsiasi punto della stringa.

re.partita ()

ri.match () funzione di re in Python cercherà il modello di espressione regolare e restituire la prima occorrenza. Il metodo di corrispondenza RegEx Python controlla una corrispondenza solo all’inizio della stringa. Quindi, se viene trovata una corrispondenza nella prima riga, restituisce l’oggetto match. Ma se una corrispondenza viene trovata in qualche altra riga, la funzione di corrispondenza RegEx Python restituisce null.

Ad esempio, si consideri il seguente codice di Python re.partita () funzione. L’espressione” w+ “e” \W “corrisponderà alle parole che iniziano con la lettera” g “e successivamente, tutto ciò che non è iniziato con” g ” non viene identificato. Per verificare la corrispondenza per ogni elemento nell’elenco o nella stringa, eseguiamo forloop in questo re Python.match () Esempio.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall(), Flags

re.ricerca (): Trovare modello nel testo

re.la funzione search () cercherà il modello di espressione regolare e restituirà la prima occorrenza. A differenza di Python re.match (), controllerà tutte le righe della stringa di input. Il pitone ri.search () funzione restituisce un oggetto match quando viene trovato il modello e “null” se il modello non viene trovato

Al fine di utilizzare search() funzione, è necessario importare Python modulo re prima e quindi eseguire il codice. Il pitone ri.search () funzione prende il “modello” e”testo”per la scansione dalla nostra stringa principale

Python Regex Tutorial: re.partita (), ri.ricerca (), ri.findall (), Flags

Per esempio qui cerchiamo due stringhe letterali “Software testing” “guru99”, in una stringa di testo “Software Testing is fun”. Per “test del software” abbiamo trovato la corrispondenza, quindi restituisce l’output di Python re.search () Esempio come “trovato una corrispondenza”, mentre per la parola” guru99 “non siamo riusciti a trovare in stringa quindi restituisce l’output come”Nessuna corrispondenza”.

re.findall ()

il modulo findall () viene utilizzato per cercare “tutte” le occorrenze che corrispondono a un determinato modello. Al contrario, il modulo search() restituirà solo la prima occorrenza che corrisponde al modello specificato. findall () itererà su tutte le righe del file e restituirà tutte le corrispondenze di pattern non sovrapposte in un unico passaggio.

Ad esempio, qui abbiamo un elenco di indirizzi e-mail e vogliamo che tutti gli indirizzi e-mail vengano recuperati dall’elenco, usiamo il metodo re.findall () in Python. Troverà tutti gli indirizzi e-mail dalla lista.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall (), Flags

Ecco il codice completo per esempio di re.findall()

import relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print((z.groups())) patterns = text = 'software testing is fun?'for pattern in patterns: print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!')else: print('no match')abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print(email)

Python Flags

Molti metodi Regex Python e funzioni Regex prendono un argomento opzionale chiamato Flags. Questo flag può modificare il significato del modello Regex Python dato. Per capire questi vedremo uno o due esempi di queste bandiere.

Various flags used in Python includes

Syntax for Regex Flags What does this flag do
Make begin/end consider each line
It ignores case
Make
Make { \w,\W,\b,\B} follows Unicode rules
Make {\w,\W,\b,\B} follow locale
Allow comment in Regex

Example of re.M o Flag multilinea

In multilinea il carattere del pattern corrisponde al primo carattere della stringa e all’inizio di ogni riga (che segue immediatamente dopo ogni nuova riga). Mentre l’espressione piccola ” w ” viene utilizzata per contrassegnare lo spazio con caratteri. Quando si esegue il codice, la prima variabile ” k1 ” stampa solo il carattere ‘g’ per la parola guru99, mentre quando si aggiunge il flag multilinea, recupera i primi caratteri di tutti gli elementi nella stringa.

Python Regex Tutorial: ri.partita (), ri.ricerca (), ri.findall(), Flags

Ecco il codice

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • Abbiamo dichiarato la variabile xx per stringa ” guru99…. carrieraguru99….selenium “
  • Esegui il codice senza usare flag multilinea, dà l’output solo ‘ g ‘dalle linee
  • Esegui il codice con flag “multilinea”, quando stampi’ k2 ‘dà l’output come’ g’,’ c ‘e’ s ‘
  • Quindi, la differenza che possiamo vedere dopo e prima di aggiungere multi-linee nell’esempio precedente.

Allo stesso modo, puoi anche usare altri flag Python come re.U (Unicode), ri.L (Seguire locale), ri.X (Consenti commento), ecc.

Python 2 Esempio

I codici di cui sopra sono Python 3 esempi, Se si desidera eseguire in Python 2 si prega di considerare il seguente codice.

# Example of w+ and ^ Expressionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print r1# Example of \s expression in re.split functionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print (re.split(r'\s','we are splitting the words'))print (re.split(r's','split the words'))# Using re.findall for textimport relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print(z.groups()) patterns = text = 'software testing is fun?'for pattern in patterns: print 'Looking for "%s" in "%s" ->' % (pattern, text), if re.search(pattern, text): print 'found a match!'else: print 'no match'abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print email# Example of re.M or Multiline Flagsimport rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print k1print k2

Sommario

Un’espressione regolare in un linguaggio di programmazione è una stringa di testo speciale utilizzata per descrivere un modello di ricerca. Include cifre e punteggiatura e tutti i caratteri speciali come##@!% , ecc. L’espressione può includere letterale

  • Corrispondenza del testo
  • Ripetizione
  • Ramificazione
  • Composizione di pattern ecc.

In Python, un’espressione regolare è indicata come RE (REs, regexes o regex pattern) sono incorporati attraverso il modulo Python re.

  • Modulo”re” incluso in Python utilizzato principalmente per la ricerca e la manipolazione di stringhe
  • Utilizzato anche frequentemente per lo “Scraping” delle pagine Web (estrarre grandi quantità di dati dai siti Web)
  • I metodi di espressione regolare includono re.partita (), ri.ricerca () & re.findall()
  • Altri metodi di sostituzione regex Python sono sub() e subn() che vengono utilizzati per sostituire le stringhe corrispondenti in re
  • Python Flags Molti metodi Regex Python e le funzioni Regex prendono un argomento opzionale chiamato Flags
  • Questo flag può modificare il significato del modello Regex dato
  • Vari flag Python utilizzati nei metodi Regex.M, re.Io, re.S, ecc.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.