Unidad 2. Expresiones Regulares

  • Published on
    13-Feb-2015

  • View
    317

  • Download
    7

Embed Size (px)

Transcript

INSTITUTO TECNOLGICO DE CIUDAD VALLES INGENIERA EN SISTEMAS COMPUTACIONALES Profesora: Ing. Rosa Imelda Garca Chi, MTI

LENGUAJES Y AUTMATASUNIDAD 2. EXPRESIONES REGULARES

ELABORADO POR

MTI. ROSA IMELDA GARCA CHI

Cd. Valles, SLP, a 22 Febrero de 2013

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

Contenido1 2 EXPRESIN REGULAR ............................................................................................................................... 1 CONSTRUCCIN DE EXPRESIONES REGULARES ........................................................................................ 2 2.1 2.2 2.3 3 ALTERNACIN ................................................................................................................................................ 2 CUANTIFICACIN............................................................................................................................................. 2 AGRUPACIN ................................................................................................................................................. 2

APLICACIONES ......................................................................................................................................... 4 3.1 LAS EXPRESIONES REGULARES EN PROGRAMACIN ................................................................................................. 4 Motores para el usuario final ........................................................................................................... 4 Motores para el programador .......................................................................................................... 5

3.1.1 3.1.2 3.2 3.3 4

EXPRESIONES REGULARES COMO MOTOR DE BSQUEDA .......................................................................................... 6 EXPRESIONES REGULARES COMO LENGUAJE .......................................................................................................... 6

DESCRIPCIN DE LAS EXPRESIONES REGULARES ...................................................................................... 7 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 EL PUNTO "." ................................................................................................................................................. 7 LA BARRA INVERSA O CONTRABARRA "" ............................................................................................................... 7 LOS CORCHETES "[ ]" ....................................................................................................................................... 9 LA BARRA "|" ............................................................................................................................................... 10 EL SIGNO DE DLAR "$" ................................................................................................................................. 10 EL ACENTO CIRCUNFLEJO "^" ........................................................................................................................... 10 LOS PARNTESIS "()"...................................................................................................................................... 11 EL SIGNO DE INTERROGACIN "?" .................................................................................................................... 11 LAS LLAVES "{}" ............................................................................................................................................ 12 EL ASTERISCO "*" ..................................................................................................................................... 13 EL SIGNO DE SUMA "+" ............................................................................................................................. 13 GRUPOS ANNIMOS ................................................................................................................................. 14 GRUPOS NOMINALES................................................................................................................................. 15

UNIDAD 2. EXRESIONES REGULARES

Pgina i

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

1 Expresin regularDe Wikipedia, la enciclopedia libre Una expresin regular, a menudo llamada tambin patrn, es una expresin que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Hndel y Haendel se describe mediante el patrn "H(a||ae)ndel". La mayora de las formalizaciones proporcionan los siguientes constructores: una expresin regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje. En informtica, las expresiones regulares proveen una manera muy flexible de buscar o reconocer cadenas

UNIDAD 2 EXPRESIONES REGULARES

Pgina 1

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

2 Construccin de expresiones regularesEspecficamente, las expresiones regulares se construyen utilizando los operadores unin, concatenacin y clausura de Kleene. Adems cada expresin regular tiene un autmata finito asociado.

2.1 AlternacinUna barra vertical separa las alternativas. Por ejemplo, "marrn|castao" casa con marrn o castao.

2.2 CuantificacinUn cuantificador tras un carcter especifica la frecuencia con la que ste puede ocurrir. Los cuantificadores ms comunes son +, ? y *: + El signo ms indica que el carcter que le precede debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etctera. ? El signo de interrogacin indica que el carcter que le precede puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro. * El asterisco indica que el carcter que le precede puede aparecer cero, una, o ms veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etctera.

2.3 AgrupacinLos parntesis pueden usarse para definir el mbito y precedencia de los dems operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre|madre", y "(des)?amor" casa con amor y con desamor.

UNIDAD 2 EXPRESIONES REGULARES

Pgina 2

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

Los constructores pueden combinarse libremente dentro de la misma expresin, por lo que "H(ae?|)ndel" equivale a "H(a|ae|)ndel". La sintaxis precisa de las expresiones regulares cambia segn las herramientas y aplicaciones consideradas, y se describe con ms detalle a continuacin. Su utilidad ms obvia es la de describir un conjunto de cadenas, lo que resulta de utilidad en editores de texto y aplicaciones para buscar y manipular textos. Muchos lenguajes de programacin admiten el uso de expresiones regulares con este fin. Por ejemplo, Perl tiene un potente motor de expresiones regulares directamente incluido en su sintaxis. Las herramientas proporcionadas por las distribuciones de Unix (incluyendo el editor sed y el filtro grep) fueron las primeras en popularizar el concepto de expresin regular.

UNIDAD 2 EXPRESIONES REGULARES

Pgina 3

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

3

Aplicaciones

Numerosos editores de texto y otras utilidades utilizan expresiones regulares para buscar y remplazar patrones en un texto.

3.1 Las expresiones regulares en programacinNota: Para el entendimiento completo de esta seccin es necesario poseer conocimientos generales acerca de lenguajes de programacin o programacin en general. En el rea de la programacin las expresiones regulares son un mtodo por medio del cual se pueden realizar bsquedas dentro de cadenas de caracteres. Sin importar si la bsqueda requerida es de dos caracteres en una cadena de 10 o si es necesario encontrar todas las apariciones de un patrn definido de caracteres en un archivo de millones de caracteres, las expresiones regulares proporcionan una solucin para el problema. Adicionalmente, un uso derivado de la bsqueda de patrones es la validacin de un formato especfico en una cadena de caracteres dada, como por ejemplo fechas o identificadores. Para poder utilizar las expresiones regulares al programar es necesario tener acceso a un motor de bsqueda con la capacidad de utilizarlas. Es posible clasificar los motores disponibles en dos tipos: Motores para el programador y Motores para el usuario final. 3.1.1 Motores para el usuario final son programas que permiten realizar bsquedas sobre el contenido de un archivo o sobre un texto extrado y colocado en el programa. Estn diseados para permitir al usuario realizar bsquedas avanzadas usando este mecanismo, sin embargo es necesario aprender a redactar expresiones regulares adecuadas para poder utilizarlos eficientemente. Estos son algunos de los programas disponibles: grep: programa de los sistemas operativos Unix/Linux. sed: programa de los sistemas operativos Unix/Linux que permite la modificacin de la salida. PowerGrep: versin de grep para los sistemas operativos Windows.

UNIDAD 2 EXPRESIONES REGULARES

Pgina 4

IT DE CD. VALLES

LENGUAJES Y AUTOMATAS

RegexBuddy: ayuda a crear las expresiones regulares en forma interactiva y luego le permite al usuario usarlas y guardarlas. EditPad Pro: permite realizar bsquedas con expresiones regulares sobre archivos y las muestra por medio de cdigo de colores para facilitar su lectura y comprensin. 3.1.2 Motores para el programador Permiten automatizar el proceso de bsqueda de modo que sea posible utilizarlo muchas veces para un propsito especfico. Estas son algunas de las herramientas de programacin disponibles que ofrecen motores de bsqueda con soporte a expresiones regulares: AWK: Forma una parte esencial del lenguaje y por extensin de la herramienta awk de Unix/Linux Java: existen varias