VISITAS:

martes, 17 de abril de 2012

Expresiones Regulares (II)

Las expresiones regulares (RE) son un lenguaje estándar para especificar búsquedas en un texto.
Se utilizan en muchas herramientas Unix como vi, emacs, greps, etc así como en Microsoft Word, por ejemplo. Pero además de este uso práctico, las expresiones regulares también se utilizan como una herramienta teórica en lingüística computacional.
Las expresiones regulares son "case sensitive" (las mayúsculas son distintas de las minúsculas). Si se busca /agua/ no se encontrarán cadenas como "Agua".
Los corchetes permiten uno entre varios caracteres. Si se busca /[Aa]gua/ se encontrarán cadenas como "agua" y "Agua". Los corchetes permiten especificar rangos de caracteres, como en /[1-0]/ para buscar un dígito, o /[A-Z]/ para encontrar una letra mayúscula. El símbolo ^ al principio de unos corchetes indica un patrón que no se debe cumplir, por ejemplo, /[^A-Z]/ busca cualquier carácter que no sea una letra mayúscula, /[^sS]/ cualquier carácter que no sea la "s" (mayúscula o minúscula). Si el carácter ^ aparece en otro lugar que no sea inmediatamente después del corchete, entonces significa buscar el propio carácter ^, no una negación.
La interrogación ? hace que un carácter sea opcional. Si se busca /colou?r/ encontrará las cadenas "colour" y "color", /casas?/ encontrará las cadenas "casa" y "casas". La interrogación convierte en opcional el carácter inmediatamente anterior.
El símbolo * es parecido al símbolo ?, permite buscar el carácter anterior repetido cualquier número de veces (o ninguna). Si se busca /ca*sa/ se encontrarán cadenas como "csa" "casa" "caasa" "caaasa", etc.
El símbolo + es parecido al símbolo ?, permite buscar el carácter anterior al menos una vez y repetido cualquier número de veces. Si se busca /ca+sa/ se encontrarán cadenas como "casa" "caasa" "caaasa", etc.
El símbolo . se puede sustituir por cualquier carácter. Si se busca /pep./ se encontrarán cadenas como "pepa" "pepe" "pepi" etc.
El símbolo | permite hacer un OR entre varias cadenas de caracteres. Por ejemplo, /casa|house/ buscará las cadenas "casa" y "house".
Para encontrar cadenas al principio o al final de una línea, se utilizan los símbolos ^ y $. Si se busca /^La/ se encontrarán líneas que comiencen por "La". Si se busca /.$/ se encontrarán las líneas que terminen con .
Si se quiere buscar exactamente un símbolo como *, ?, etc se usará: /\*/ /\?/ /\./ /\+/