Expresiones Regulares

Post on 31-Dec-2015

26 views 3 download

description

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. - PowerPoint PPT Presentation

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'\\'