Maybaygiare.org

Blog Network

Piton RegEx: re.meci (), re.căutare (), re.findall() cu exemplu

ce este expresia regulată în Python?

o expresie regulată (RE) într-un limbaj de programare este un șir de text special utilizat pentru descrierea unui model de căutare. Este extrem de util pentru extragerea informațiilor din text, cum ar fi Cod, fișiere, jurnal, foi de calcul sau chiar documente.

în timp ce folosim expresia regulată Python, primul lucru este să recunoaștem că totul este în esență un caracter și scriem modele pentru a se potrivi cu o secvență specifică de caractere denumită și șir. Ascii sau litere latine sunt cele care sunt pe tastaturi și Unicode este folosit pentru a se potrivi textul străin. Acesta include cifre și semne de punctuație și toate caracterele speciale, cum ar fi $#@!% , etc.

în acest tutorial Python RegEx, vom învăța –

  • sintaxa expresiei regulate
  • exemplu de Expresie w+ și ^
  • exemplu de Expresie \S în re.funcția split
  • folosind metode de expresie regulată
  • folosind re.match ()
  • găsirea model în Text (re.căutare())
  • folosind re.findall pentru text
  • steaguri Python
  • exemplu de re.M sau steaguri Multiline

de exemplu, o expresie regulată Python ar putea spune unui program să caute text specific din șir și apoi să imprime rezultatul în consecință. Expresia poate include

  • potrivirea textului
  • repetiție
  • ramificare
  • model-compoziție etc.

expresie regulată sau RegEx în Python este notat ca RE (REs, regexes sau model regex) sunt importate prin modulul re. Python acceptă expresia regulată prin biblioteci. RegEx în Python acceptă diverse lucruri precum modificatori, identificatori și caractere spațiale albe.

identificatori

modificatori caractere spațiu alb evadare necesară
\D= orice număr (o cifră) \D reprezintă o cifră.Ex: \d{1,5} se va declara cifre între 1,5 ca 424,444,545 etc. \n = linie nouă . + * ? $ ^ () {} | \
\D= orice altceva decât un număr (o non-cifră) + = se potrivește cu 1 sau mai multe \s= spațiu
\s = spațiu (tab,spațiu,linie nouă etc.) ? = 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} = această cantitate de cod precedent —————–

expresie regulată(RE) sintaxă

import re
  • „re” modul inclus cu Python utilizate în principal pentru căutarea șir și manipulare
  • de asemenea, utilizat frecvent pentru pagina web „răzuire” (extract cantitate mare de date de pe site-uri web)

vom începe tutorialul de Expresie cu acest exercițiu simplu folosind expresiile (W+) și (^).

exemplu de Expresie w+ și ^

  • „^”: Această expresie se potrivește cu începutul unui șir
  • ” w+”: această expresie se potrivește cu caracterul alfanumeric din șir

aici vom vedea un exemplu Python Regex despre cum putem folosi expresia w+ și ^ în codul nostru. Acoperim funcția re.findall () în Python, mai târziu în acest tutorial, dar pentru o vreme ne concentrăm pur și simplu pe expresia \W+ și\^.

de exemplu, pentru șirul nostru „guru99, educația este distractivă” dacă executăm codul cu w+ și^, acesta va da ieșirea „guru99”.

Python Regex Tutorial: re.meci (), re.căutare (), re.Findall (), steaguri

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

amintiți-vă, dacă eliminați semnul +din w+, ieșirea se va schimba și va da doar primul caracter al primei litere, adică

exemplu de Expresie \S în re.funcția split

  • „s”: această expresie este utilizată pentru crearea unui spațiu în șirul

pentru a înțelege cum funcționează acest RegEx în Python, începem cu un exemplu simplu Python Regex al unei funcții split. În exemplu, am împărțit fiecare cuvânt folosind ” re.split ” funcție și, în același timp, am folosit expresia \s, care permite de a analiza fiecare cuvânt în șir separat.

Python Regex Tutorial: re.meci (), re.căutare (), re.findall (), steaguri

când executați acest cod vă va da de ieșire .

acum, să vedem ce se întâmplă dacă eliminați „\” din s. nu există nici un alfabet ‘s’ în Ieșire, acest lucru se datorează faptului că am eliminat ‘\’ din șir, și evaluează „s” ca un caracter regulat și, astfel, împărțit cuvintele ori de câte ori se găsește „s” în șir.

Python Regex Tutorial: re.meci (), re.căutare (), re.Findall (), steaguri

în mod similar, există o serie de alte expresii regulate Python pe care le puteți utiliza în diferite moduri în Python ca \d,\d,$,\., \b, etc.

iată codul complet

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')))

în continuare, vom vedea tipurile de metode care sunt utilizate cu expresie regulată în Python.

folosind metode de expresie regulată

pachetul „re” oferă mai multe metode pentru a efectua efectiv interogări pe un șir de intrare. Vom vedea metodele de re în Python:

  • re.meci ()
  • re.căutare()
  • re.Findall ()

notă: pe baza expresiilor regulate, Python oferă două operații primitive diferite. Metoda de potrivire verifică o potrivire numai la începutul șirului, în timp ce căutarea verifică o potrivire oriunde în șir.

re.meci ()

re.meci () funcția de re în Python va căuta modelul expresie regulată și a reveni la prima apariție. Metoda de potrivire Python RegEx verifică un meci numai la începutul șirului. Deci, în cazul în care un meci este găsit în prima linie, returnează obiectul meci. Dar dacă o potrivire se găsește într-o altă linie, funcția Python Regex Match returnează null.

de exemplu, ia în considerare următorul cod de Python re.meci () funcție. Expresia ” w + „și” \W „se vor potrivi cu cuvintele care încep cu litera” g „și, ulterior, orice lucru care nu este început cu” g ” nu este identificat. Pentru a verifica meci pentru fiecare element din listă sau șir, vom rula forloop în această re Python.meci () exemplu.

Python Regex Tutorial: re.meci (), re.căutare (), re.Findall(), steaguri

re.căutare (): găsirea model în Text

re.funcția Căutare () va căuta modelul expresiei regulate și va returna prima apariție. Spre deosebire de Python re.match (), va verifica toate liniile șirului de intrare. Pitonul re.căutare () Funcția returnează un obiect meci atunci când modelul este găsit și „null” în cazul în care modelul nu este găsit

în scopul de a utiliza funcția de căutare (), trebuie să importați Python re modul în primul rând și apoi executa codul. Pitonul re.funcția de căutare () ia „model” și”text”pentru a scana din șirul nostru principal

Python Regex Tutorial: re.meci (), re.căutare (), re.findall (), steaguri

de exemplu, aici căutăm două șiruri literale „Testare Software” „guru99”, într-un șir de text „testarea Software-ului este distractivă”. Pentru „testarea software-ului” am găsit meciul, prin urmare, returnează ieșirea Python re.căutare () exemplu ca „a găsit o potrivire”, în timp ce pentru cuvântul” guru99 „nu am putut găsi în șir, prin urmare, returnează ieșirea ca”fără potrivire”.

re.findall ()

findall () modulul este folosit pentru a căuta „toate” aparițiile care se potrivesc cu un model dat. În schimb, search () modulul va returna doar prima apariție care se potrivește cu modelul specificat. findall () va itera peste toate liniile fișierului și va returna toate meciurile care nu se suprapun de model într-un singur pas.

de exemplu, aici avem o listă de adrese de e-mail și dorim ca toate adresele de e-mail să fie preluate din listă, folosim metoda re.findall () în Python. Acesta va găsi toate adresele de e-mail din listă.

Python Regex Tutorial: re.meci (), re.căutare (), re.findall (), steaguri

aici este codul complet, de exemplu, de 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)

steaguri Python

multe metode Python RegEx și funcții Regex ia un argument opțional numit steaguri. Aceste steaguri pot modifica semnificația modelului Python Regex dat. Pentru a le înțelege, vom vedea unul sau două exemple ale acestor steaguri.

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 sau steaguri multilinie

în multilinie caracterul model Se potrivesc cu primul caracter al șirului și începutul fiecărei linii (urmând imediat după fiecare linie nouă). În timp ce expresia mic ” w ” este folosit pentru a marca spațiul cu caractere. Când executați codul prima variabilă” k1 „imprimă doar caracterul” g ” pentru Word guru99, în timp ce atunci când adăugați pavilion multilinie, se preia primele caractere ale tuturor elementelor din șir.

Python Regex Tutorial: re.meci (), re.căutare (), re.Findall(), steaguri

aici este codul

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • am declarat variabila xx pentru șir ” guru99…. careerguru99….seleniu „
  • rulați codul fără a utiliza steaguri multilinie, dă ieșire numai” g „din liniile
  • rulați codul cu pavilion „multilinie”, atunci când imprimați ” k2 „dă ieșire ca „g”, ” c ” și ” s ”
  • deci, diferența putem vedea după și înainte de a adăuga mai multe linii în exemplul de mai sus.

De asemenea, puteți utiliza și alte steaguri Python, cum ar fi re.U (Unicode), re.L( urmați locale), re.X (permiteți comentariul) etc.

Python 2 Exemplu

codurile de mai sus sunt Python 3 Exemple, Dacă doriți să rulați în Python 2 Vă rugăm să ia în considerare următorul cod.

# 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

rezumat

o expresie regulată într-un limbaj de programare este un șir de text special utilizat pentru descrierea unui model de căutare. Acesta include cifre și semne de punctuație și toate caracterele speciale, cum ar fi $#@!% , etc. Expresia poate include literal

  • potrivire Text
  • repetiție
  • ramificare
  • model-compoziție etc.

în Python, o expresie regulată este notată ca RE (REs, regexuri sau model regex) sunt încorporate prin modulul re Python.

  • „re” modul inclus cu Python utilizate în principal pentru căutarea șir și manipulare
  • de asemenea, utilizat frecvent pentru pagina de web „răzuire” (extrage cantitate mare de date de pe site-uri)
  • metode de Expresie regulate includ re.meci (), re.căutare()& re.findall ()
  • alte Python Regex înlocui metode sunt sub() și subn () care sunt utilizate pentru a înlocui șiruri de potrivire în re
  • steaguri Python multe metode Python RegEx și funcții Regex ia un argument opțional numit steaguri
  • acest steaguri pot modifica sensul dat Regex model
  • diverse steaguri Python utilizate în metodele Regex sunt re.M, re.Eu, re.S, etc.

Lasă un răspuns

Adresa ta de email nu va fi publicată.