La guía para principiantes de expresiones regulares con Python

La guía para principiantes de expresiones regulares con Python

Si es programador, es probable que ya sepa qué son las expresiones regulares (regex). Los patrones de expresiones regulares se han implementado en casi todos los lenguajes de programación convencionales, pero aún así, la mayoría de los desarrolladores no reconocen el poder y la versatilidad de estos patrones.





Esta guía trata sobre expresiones regulares y cómo puede usarlas en el lenguaje de programación Python.





¿Qué son las expresiones regulares?

Las expresiones regulares son patrones que ayudan al usuario a hacer coincidir combinaciones de caracteres en archivos de texto y cadenas. Puede utilizar expresiones regulares para filtrar o encontrar un patrón específico en la salida de un comando o documento.





Existen varios casos de uso de expresiones regulares, siendo el más conocido el comando grep en Linux . Otras aplicaciones incluyen el filtrado de información, como la extracción de direcciones de correo electrónico y números de teléfono de un volcado de datos.

La razón principal por la que muchos desarrolladores se desvían de las expresiones regulares es la falta de conciencia sobre el poder de la coincidencia de patrones. Algunos incluso encuentran confusas las expresiones regulares debido a la gran cantidad de caracteres y secuencias que se utilizan en los patrones.



Cualquiera sea la razón, las expresiones regulares son y serán uno de los aspectos más importantes de la programación que todos deberían conocer.

cómo ver la contraseña wifi android

Expresiones regulares: caracteres y secuencias coincidentes

Regex es un lenguaje completamente nuevo en sí mismo. Un motor de expresiones regulares interpreta patrones compuestos por varios caracteres equipados con significados específicos. Los literales básicos, como los caracteres alfanuméricos, coinciden. Pero los caracteres complejos como $, *, +, {, etc. ayudan en la búsqueda de coincidencias de orden superior.





  1. Asterisco (*): Coincide con el carácter anterior cero o más veces. El significado literal del carácter sería 'Elemento multiplicado n veces'. Por ejemplo, si la expresión regular es abc* , las cadenas coincidentes serán ab, abc, abcc, abccc, abcccc, etc. La expresión [antes de Cristo]* coincidirá con bc, bcbc, bcbc, etc.
  2. Más (+): Coincide con el carácter anterior una o más veces. El funcionamiento de la + el personaje es similar a * , pero el + el personaje omite el patrón si el personaje no aparece. Por ejemplo, abc+ coincidirá con abc, abcc, abccc, etc. pero no ab.
  3. Signo de interrogación (?): Coincide con el carácter anterior cero o una vez (s). Por ejemplo, el patrón abc? coincidirá con ab y abc solamente.
  4. Tubería (|): Usado como binario O operador. Coincide con cualquiera de los caracteres que preceden y siguen a la tubería. Por ejemplo, a | b coincidirá con a o b.
  5. Punto (.): Coincide con un personaje cuya identidad se desconoce. Por ejemplo, C.A coincidirá con aac, abc, acc, a2c, etc.
  6. Zanahoria (^): Coincide con el primer carácter del patrón. Por ejemplo, ^ Ra coincidirá con las palabras que comienzan con Fuera como Rabbit, Raccoon y Random.
  7. Dólar ($): Coincide con el último carácter del patrón. Por ejemplo, un $ coincidirá con las palabras que terminan con un como Van, Dan y Plan.
  8. Guión (-): Se usa para definir un rango de caracteres. Por ejemplo, [0-9] coincidirá con todos los caracteres numéricos de un solo dígito.

Las secuencias especiales utilizadas en patrones de expresión regular son:

  1. A: Devuelve una coincidencia si los caracteres siguientes están presentes al principio de la cadena. Por ejemplo, A coincidirá con las palabras que comienzan con el los como The, Them, They, etc.
  2. : Devuelve una coincidencia si el carácter se encuentra al principio o al final de una palabra. Por ejemplo, bmad y loco b coincidirá con palabras como hecha y nómada respectivamente.
  3. B: Devuelve una coincidencia si el carácter no se encuentra al principio o al final de una palabra.
  4. D: Coincide con los caracteres numéricos presentes en la cadena. Por ejemplo, /D* coincidirá con números como 1, 12, 1232, etc.
  5. D: Coincide con caracteres no numéricos en la cadena. /D coincidirá con a, b, c, f, etc.
  6. s: Coincide con un carácter de espacio en blanco en el texto.
  7. S: Coincide con un carácter que no es un espacio en blanco en el texto.
  8. en: Devuelve una coincidencia si la cadena contiene caracteres alfanuméricos, incluidos guiones bajos. Por ejemplo, en coincidirá con a, b, c, d, 1, 2, 3, etc.
  9. EN: Devuelve una coincidencia si la cadena no contiene caracteres alfanuméricos o guiones bajos.
  10. CON: Coincide con los caracteres al final de una cadena. Por ejemplo, end Z coincidirá con las palabras que terminan con fin como doblar, reparar, tender, etc.

Métodos de Python para expresiones regulares

En Python, el re Library proporciona todas las funciones y utilidades necesarias para implementar expresiones regulares en sus programas. No tiene que descargar la biblioteca usando pip, ya que viene preinstalada con el intérprete de Python.





Para importar el re biblioteca en Python, agregue el siguiente código a su secuencia de comandos:

|_+_|

Tenga en cuenta que al pasar expresiones regulares en Python, utilizamos cadenas sin procesar, ya que no interpretan caracteres especiales como orte y t diferentemente.

Fósforo()

los revancha() El método en Python devuelve un objeto regex si el programa encuentra una coincidencia al principio de la cadena especificada. Esta función toma dos argumentos básicos:

|_+_|

...dónde patrón es la expresión regular y cuerda es el texto que debe buscarse.

Eche un vistazo al fragmento de código a continuación.

|_+_|

los r carácter antes de la cadena significa cadena sin formato.

Producción:

|_+_|

El código antes mencionado regresa Ninguno porque Palabra no estaba presente al principio de la cadena.

Si se encuentra una coincidencia, puede imprimirla utilizando el grupo() método que pertenece al objeto regex.

|_+_|

Producción:

|_+_|

los re.search() El método toma argumentos similares a re.match (). Si bien match () solo devuelve coincidencias presentes al principio de la cadena, buscar() devolverá coincidencias encontradas en cualquier índice de la cadena.

|_+_|

Tenga en cuenta que el fósforo() y buscar() Los métodos solo devolverán una coincidencia de patrón. En el código mencionado anteriormente, Palabra aparece dos veces. Pero el buscar() La función solo coincidirá con la primera aparición de la palabra.

|_+_|

Encuentra todos()

Como ya puede adivinar, el encuentra todos() El método devuelve todas las coincidencias posibles en la cadena.

|_+_|

En lugar de devolver un objeto regex, la función findall () devuelve una lista de todas las coincidencias. Puede iterar a través de la lista usando un para bucle en python .

Separar()

Si desea dividir una cadena en subcadenas usando un patrón como delimitador, entonces el separar() La función es la que necesitas.

|_+_|

Producción:

|_+_|

Sub()

los sub() El método permite al usuario sustituir una palabra específica en lugar de un patrón. Toma los siguientes argumentos.

|_+_|

Considere este fragmento de código:

|_+_|

Producción:

|_+_|

Compilar()

los re.compile () método en el re La biblioteca permite al usuario almacenar una versión compilada del patrón de expresión regular en la memoria. Luego, utilizando el objeto compilado, el usuario puede filtrar rápidamente el volcado de texto especificado para patrones coincidentes.

|_+_|

Esta función se utiliza principalmente para guardar patrones que consumen muchos recursos y necesitan mucho tiempo para ejecutarse. Compilar y guardar el patrón como un objeto de antemano resuelve este problema.

Aproveche el poder de Regex con Python

Cuando trabaja con archivos de texto y salida, regex es una gran herramienta para tener a su disposición. Puede escribir rápidamente algún código para filtrar o sustituir patrones específicos en el documento.

Memorizar todos los caracteres y las secuencias coincidentes puede ser difícil si recién está comenzando con expresiones regulares. Para mejorar en las expresiones regulares, consultar una lista de caracteres, métodos y secuencias de vez en cuando definitivamente lo ayudará a largo plazo.

Cuota Cuota Pío Correo electrónico La hoja de trucos de Python RegEx para programadores en ciernes

Utilice esta lista de expresiones regulares de Python para que pueda mejorar en el uso de este versátil lenguaje de programación.

Leer siguiente
Temas relacionados
  • Programación
  • Programación
  • Pitón
Sobre el Autor Sharma profundo(79 Artículos publicados)

Deepesh es el editor junior para Linux en MUO. Escribe guías informativas sobre Linux, con el objetivo de proporcionar una experiencia maravillosa a todos los recién llegados. No estoy seguro de películas, pero si quieres hablar de tecnología, él es tu chico. En su tiempo libre, puedes encontrarlo leyendo libros, escuchando diferentes géneros musicales o tocando su guitarra.

Más de Deepesh Sharma

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse