220 likes | 601 Views
Expresiones Regulares. Introducción. Las expresiones regulares permiten expresar patrones de búsqueda genéricos dentro de cadenas. Ejemplos: a[lnm]a - Coincide con ala , ana , ama ana|ama - Coincide con ana y ama co.o- Coincide con coso , como , coro. Metacaracteres.
E N D
Introducción • Las expresiones regulares permiten expresar patrones de búsqueda genéricos dentro de cadenas. • Ejemplos: • a[lnm]a - Coincide con ala, ana, ama • ana|ama - Coincide con ana y ama • co.o- Coincide con coso, como, coro ...
Metacaracteres • Son caracteres especiales dentro de las expresiones: • [] {} * + \ $ ^ () | ? • No se interpretan literalmente sino como operadores especiales para construir patrones.
Clases de caracteres • Los corchetes se utilizan para expresar clases de caracteres: • [abc] Alguno de los caracteres a, b, c • [^abc] Cualquier carácter distinto de a, b, c • [a-z] Cualquier carácter entre la a y la z • [0-9a] Cualquier carácter entre '0' y '9' y la 'a' • El punto . representa cualquier carácter (comodín)
Cuantificadores • Los operadores de repetición son: *, +, ? • a*- O o más veces la 'a' • a+ - 1 o más veces la 'a' • a? - 1 o ninguna vez la 'a' • (abc)+ - 1 o más veces la cadena 'abc' • a{4} - la cadena 'aaaa'
Alternativas • El metacarácter | expresa alternativas: • ab|ac - la cadena 'ab' o la cadena 'ac' • ab(cd|ef) - la cadena 'abcd' o 'abef'
Anclas • Los anclas indican lugares especiales dentro de la cadena de búsqueda: • $ - final de cadena • ^ - comienzo de cadena • \b - frontera de palabra
Clases especiales • \w - alfanumérico • \W - no alfanumérico • \s - espacio • \S - no espacio • \d - dígito • \D - no dígito
Expresiones regulares en python • El módulo re maneja expresiones regulares: • >>> import re • >>> p = re.compile('[a-z]+') # compilación • >>> m = p.search('la cadena') # busqueda • >>> m.group(0) 'la' • >>> p.findall('la cadena') # obtener todas ['la','cadena']
El objeto match • El método search() retorna un objeto match • p = re.compile('expresion regular') • m = p.search('cadena de busqueda') • Los métodos para m son: • m.start()- posición de comienzo • m.end()- posición de fin • m.group()- cadena de coincidencia
Grupos • Cada par de paréntesis determina un grupo en la coincidencia. • Se numeran de izquierda a derecha • El grupo 0 hace referencia a la coincincidencia completa • >>> p = re.compile('(\d+),(\d+)') • >>> m = p.search('El 44,89 % del producto') • >>> m.group(0) • '44,89' • >>> m.group(1) • '44' • >>> m.group(2) • '89'
Protegiendo los metacaracteres • Si queremos buscar alguno de los metacaracteres explícitos es necesario protegerlos escribiendo una doble barra invertida: • '\\.' el punto • '\\(' paréntesis • '\\\\' barra invertida • Otra forma: • r'\.' • r'\(' • r'\\'