Expresiones Regulares
-
Upload
sierra-mcclain -
Category
Documents
-
view
26 -
download
3
description
Transcript of Expresiones Regulares
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
• 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'\\'