Google+ Seguidores

lunes, 23 de marzo de 2015

Introduccion a las expresiones regulares en python

    6


Python nos permite trabajar con expresiones regulares pero para ello debemos tener antes conocimientos previos acerca de las expresiones regulares o de cómo crear una, en ambas versiones de Python se puede trabajar con expresiones regulares tanto en la versión 2 y 3.
Una expresión regular, a menudo llamada también regex, es una secuencia de caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de patrones de cadenas de caracteres u operaciones de sustituciones.
Expresiones regulares
Expresiones regulares
\t — Representa un tabulador.
\r — Representa el "retorno de carro" o "regreso al inicio" o sea el lugar en que la línea vuelve a iniciar.
\n — Representa la "nueva línea" el carácter por medio del cual una línea da inicio.
\f — Representa un salto de página
\v — Representa un tabulador vertical
\x — Se utiliza para representar caracteres ASCII o ANSI si conoce su código. De esta forma, si se busca el símbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres Latin-1 es posible encontrarlo utilizando "\xA9".
\u — Se utiliza para representar caracteres Unicode si se conoce su código. "\u00A2" representa el símbolo de centavos. No todos los motores de Expresiones Regulares soportan Unicode.
\d — Representa un dígito del 0 al 9.
\w — Representa cualquier carácter alfanumérico (a-z, A-Z, 0-9 o guión bajo).
\s — Representa un espacio en blanco.
\D — Representa cualquier carácter que no sea un dígito del 0 al 9.
\W — Representa cualquier carácter no alfanumérico.
\S — Representa cualquier carácter que no sea un espacio en blanco.
\A — Representa el inicio de la cadena. No un carácter sino una posición.
\Z — Representa el final de la cadena. No un carácter sino una posición.
\b — Marca el inicio y el final de una palabra.
\B — Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos.
Alternación

Una barra vertical separa las alternativas. Por ejemplo,

"marrón|castaño" se corresponde con marrón o castaño.

Cuantificación

Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *:

+ - El signo más indica que el carácter que le precede debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etcétera.

? - El signo de interrogación indica que el carácter que le precede puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" se corresponde con oscuro y obscuro.

* - El asterisco indica que el carácter que le precede puede aparecer cero, una, o más veces. Por ejemplo, "0*42" se corresponde con 42, 042, 0042, 00042, etcétera.

Agrupación

Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre|madre", y "(des)?amor" se corresponde con amor y con desamor.

Los corchetes "[ ]" - La función de los corchetes en el lenguaje de las expresiones regulares es representar "clases de caracteres", o sea, agrupar caracteres en grupos o clases.

La barra "|" - Sirve para indicar una de varias opciones. Por ejemplo, la expresión regular "a|e" encontrará cualquier "a" o "e" dentro del texto.

El signo de dólar "$" - Representa el final de la cadena de caracteres o el final de la línea, si se utiliza el modo multi-línea. No representa un carácter en especial sino una posición.

El punto “.” - El punto se interpreta por el motor de búsqueda como "cualquier carácter", es decir, busca cualquier carácter SIN incluir los saltos de línea.
Módulo re
Python nos ofrece el módulo re que cuenta con funciones para trabajar con expresiones regulares y cadenas.

Solo hace falta importar ese módulo de esta manera:
1
import re

La función match()
Dentro de las muchas funciones que nos ofrece el modulo re nos encontramos con esta función match, que comprueba si una cadena es equivalente a una expresión regular.

Ahora vamos a validar una expresión regular con una cadena, la cadena debe ser cualquier carácter alfanumérico.
Función match
Función match
Ejemplo de cadenas aceptables:
Hola
Mundo
67
Ejemplo de cadena rechazada
-Hola
[45]

import re; #Se importa el modulo
cadena = input("Ingrese la cadena:\n") #Ingresamos una cadena
patron = ("\w+$") #Esta es una expresión regular que nos va a permitir validar la cadena
if (re.match(patron,cadena)): #La función re.match recibe 2 parámetros un patrón a validar y una cadena
     print ("Cadena valida :)")
else:
     print ("Cadena no valida :(")
Ejemplo de cadena valida
Ejemplo de cadena valida
Ejemplo de cadena no valida
Ejemplo de cadena no valida
A simple vista, las expresiones regulares no parecen tener un gran uso, pero la realidad es que son muy útiles a la hora de validar cadenas, te has preguntado cómo es que se validan los correos electrónicos en un página web y si ingresas un correo no valido como por arte de magia te avisa que es incorrecto, pues son las expresiones regulares la que permiten hacer esas funciones.
Python nos ofrece muchas funciones del módulo re, de las más usadas encontramos a re.split() y re.search() entre otras…ya llegara el tiempo de hablar de ellas, si te interesa un poco más la documentación de expresiones regulares la podrás encontrar en la página oficial de Python: https://docs.python.org/2/library/re.html
En el siguiente artículo me adentrare más en las expresiones regulares pero con un poco más de cache validaremos:
  • Un correo electrónico
  • Un identificador de java
  • Un identificador de php
  • La fecha
  • Un número real
  • Un entero
  • Una dirección
  • Un teléfono
  • Un nombre
Pero con interfaz gráfica… en nuestro lenguaje preferido Python.
Expresiones regulares
Expresiones regulares

















Autor: Heder Ithamar Romero
Seguir: Google +

6 comentarios:
Write comentarios
  1. Estoy aprendiendo a programar en Python por mi cuenta y el artículo me ha parecido muy interesante y esclarecedor.
    Enhorabuena y seguid así.

    ResponderEliminar
    Respuestas
    1. Hola Vicente. Gracias por visitar el blog. Seguiremos agregando más artículos sobre las expresiones regulares. Saludos

      Eliminar
  2. Saludos excelente blog, desde Venezuela

    ResponderEliminar
  3. Excelente Blog, el articulo muy interesante y me ha sido de gran ayuda. Saludos desde Venezuela

    ResponderEliminar
    Respuestas
    1. Gracias The Master, muchas gracias por visitar el blog y acá estamos para compartir y ayudar!!! Saludos

      Eliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.