La Guia per a principiants d’expressions regulars amb Python

La Guia per a principiants d’expressions regulars amb Python

Si sou programador, és probable que ja sabeu què són les expressions regulars (expressió regular). Els patrons Regex s’han implementat en gairebé tots els llenguatges de programació convencionals, però la majoria dels desenvolupadors no reconeixen la potència i versatilitat d’aquests patrons.





Aquesta guia tracta d’expressions regulars i de com podeu utilitzar-les en el llenguatge de programació Python.





Què són les expressions regulars?

Les expressions regulars són patrons que ajuden un usuari a coincidir combinacions de caràcters en fitxers de text i cadenes. Podeu utilitzar expressions regulars per filtrar o trobar un patró específic a la sortida d'una ordre o d'un document.





Hi ha diversos casos d’ús d’expressions regulars, el més reconegut l'ordre grep a Linux . Altres aplicacions inclouen el filtratge d’informació, com ara extreure adreces de correu electrònic i números de telèfon d’un bolcat de dades.

El principal motiu pel qual molts desenvolupadors s’allunyen de les expressions regulars és la manca de consciència sobre el poder de la concordança de patrons. Alguns fins i tot troben confuses les expressions regulars a causa de la gran quantitat de caràcters i seqüències utilitzats en els patrons.



Sigui quin sigui el motiu, les expressions regulars són i seran un dels aspectes més importants de la programació que tothom hauria de conèixer.

Codi de centre d’ajuda Disney Plus 83

Expressions regulars: coincidència de caràcters i seqüències

Regex és un llenguatge completament nou en si mateix. Un motor de regex interpreta patrons formats per diversos caràcters equipats amb significats específics. Els literals bàsics com ara els caràcters alfanumèrics coincideixen amb ells mateixos. Però els caràcters complexos com $, *, +, {, etc. ajuden a la concordança d’ordre superior.





  1. Asterisc (*): Coincideix amb el caràcter anterior zero o més vegades. El significat literal del personatge seria 'Element multiplicat per n vegades'. Per exemple, si l’expressió regular és abc * , les cadenes coincidents seran ab, abc, abcc, abccc, abcccc, etc. L'expressió [bc] * coincidirà amb bc, bcbc, bcbc, etc.
  2. Més (+): Coincideix amb el caràcter anterior una o més vegades. El funcionament del + és similar al caràcter * , però el + el caràcter omet el patró si no es produeix. Per exemple, abc + coincidirà amb abc, abcc, abccc, etc., però no amb ab.
  3. Signe d'interrogació (?): Coincideix amb el caràcter anterior zero o una o més vegades. Per exemple, el patró abc? coincidirà només amb ab i abc.
  4. Tub (|): S'utilitza com a binari O operador. Coincideix amb qualsevol dels personatges anteriors i successius a la canonada. Per exemple, a | b coincidirà amb a o amb b.
  5. Punt (.): Coincideix amb un personatge que desconeix la identitat. Per exemple, AC coincidirà amb aac, abc, acc, a2c, etc.
  6. Pastanaga (^): Coincideix amb el primer caràcter del patró. Per exemple, ^ Ra coincidirà amb paraules que comencin per Fora com ara Rabbit, Raccoon i Random.
  7. Dòlar ($): Coincideix amb l'últim caràcter del patró. Per exemple, un $ farà coincidir les paraules acabades amb un com Van, Dan i Plan.
  8. Guió (-): S'utilitza per definir un interval de caràcters. Per exemple, [0-9] coincidirà amb tots els caràcters numèrics d’un sol dígit.

Les seqüències especials que s’utilitzen en patrons d’expressió regular són:

  1. A: Retorna una coincidència si els caràcters posteriors estan presents al començament de la cadena. Per exemple, AThe coincidirà amb paraules que comencin per la El com El, Ells, Ells, etc.
  2. B: Retorna una coincidència si el personatge es troba al principi o al final d'una paraula. Per exemple, bmad i boig b coincidirà amb paraules com fet i nòmada respectivament.
  3. B: Retorna una coincidència si el caràcter no es troba al principi o al final d'una paraula.
  4. d: Coincideix amb els caràcters numèrics presents a la cadena. Per exemple, / d * coincidirà amb números com 1, 12, 1232, etc.
  5. D: Coincideix caràcters no numèrics a la cadena. / D coincidirà amb a, b, c, f, etc.
  6. s: Coincideix amb un caràcter en blanc del text.
  7. S: Coincideix amb un caràcter que no és en blanc al text.
  8. in: Retorna una coincidència si la cadena conté caràcters alfanumèrics, inclosos els guions baixos. Per exemple, in coincidirà amb a, b, c, d, 1, 2, 3, etc.
  9. IN: Retorna una coincidència si la cadena no conté caràcters alfanumèrics ni guions baixos.
  10. AMB: Coincideix amb els caràcters al final d'una cadena. Per exemple, final Z farà coincidir les paraules acabades amb final com ara doblegar, reparar, tendir, etc.

Mètodes Python per a expressions regulars

A Python, el fitxer re La biblioteca proporciona totes les funcions i utilitats necessàries per implementar l'expressió regular als vostres programes. No cal que descarregueu la biblioteca amb pip, ja que ve preinstal·lada amb l’intèrpret de Python.





Per importar el fitxer re a Python, afegiu el codi següent al vostre script:

import re

Tingueu en compte que mentre passem expressions regulars a Python, fem servir cadenes en brut ja que no interpreten caràcters especials com n i t de manera diferent.

Match ()

El re.match () mètode a Python retorna un objecte d'expressió regular si el programa troba una coincidència al començament de la cadena especificada. Aquesta funció té dos arguments bàsics:

re.match(pattern, string)

... on patró és l'expressió regular i corda és el text que cal cercar.

Mireu el fragment de codi següent.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

El r caràcter abans de la cadena significa cadena crua.

Sortida:

None

Torna el codi esmentat Cap perquè Paraula no era present al començament de la cadena.

Si es troba una coincidència, podeu imprimir-la mitjançant el fitxer grup () mètode que pertany a l'objecte regex.

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

Sortida:

Word

El re.search () el mètode adopta arguments similars a re.match (). Mentre match () només retorna els partits presents al començament de la cadena, cerca() retornarà coincidències trobades a qualsevol índex de la cadena.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

Tingueu en compte que match () i cerca() els mètodes només retornaran una coincidència de patró. Al codi esmentat anteriorment, Paraula apareix dues vegades. Però el cerca() La funció només coincidirà amb la primera ocurrència de la paraula.

Word

FindAll ()

Com ja es pot endevinar, el findall () El mètode retorna totes les coincidències possibles de la cadena.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

En lloc de retornar un objecte regex, la funció findall () retorna una llista de totes les coincidències. Podeu recórrer la llista mitjançant un fitxer per a bucle en python .

Dividir ()

Si voleu dividir una cadena en subcadenes utilitzant un patró com a delimitador, llavors split () la funció que necessiteu.

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

Sortida:

['This word', 'that', 'this are different.']

Sub ()

El sub () Aquest mètode permet a l'usuari substituir una paraula específica en lloc d'un patró. Es necessiten els arguments següents.

re.sub(pattern, replacement, string)

Penseu en aquest fragment de codi:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

Sortida:

Dave or Harry must be punished.

Compila ()

El re.compile () mètode a re La biblioteca permet a l'usuari emmagatzemar una versió compilada del patró d'expressió regular a la memòria. A continuació, mitjançant l’objecte compilat, l’usuari pot filtrar ràpidament el bolcat de text especificat per als patrons coincidents.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

Aquesta funció s'utilitza principalment per estalviar patrons que requereixen molts recursos i que necessiten molt de temps per executar-se. Compilar i desar el patró com a objecte prèviament resol aquest problema.

Aprofiteu el poder de Regex amb Python

Quan esteu treballant amb fitxers de text i sortida, regex és una gran eina que teniu a la vostra disposició. Podeu escriure ràpidament algun codi per filtrar o substituir patrons específics al document.

La memòria de tots els personatges i les seqüències coincidents pot ser difícil si tot just comenceu amb l’expressió regular. Per millorar les expressions regulars, fer referència a una llista de caràcters, mètodes i seqüències cada cert temps us ajudarà a la llarga.

Compartir Compartir Tweet Correu electrònic El full de trucs de Python RegEx per a programadors en procés de creació

Utilitzeu aquesta llista d’expressions regulars de Python perquè pugueu utilitzar millor aquest versàtil llenguatge de programació.

Llegiu a continuació
Temes relacionats
  • Programació
  • Programació
  • Python
Sobre l'autor Deepesh Sharma(79 articles publicats)

Deepesh és l'editor júnior de Linux a MUO. Escriu guies informatives a Linux, amb l'objectiu de proporcionar una experiència feliç a tots els nouvinguts. No estic segur de les pel·lícules, però si vols parlar de tecnologia, ell és el teu noi. Durant el temps lliure, el trobareu llegint llibres, escoltant diferents gèneres musicals o tocant la seva guitarra.

Més de Deepesh Sharma

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us