Expresiones Regulares Introduccin Las expresiones regulares permiten expresar

  • Slides: 12
Download presentation
Expresiones Regulares

Expresiones Regulares

Introducción • Las expresiones regulares permiten expresar patrones de búsqueda genéricos dentro de cadenas.

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: – [] {} * +

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: –

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 -9 a] 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

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

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: –

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 -

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: >>>

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 =

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

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

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