expresiones regulares

Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. El proceso para el que se usan estas expresiones, presente en el mundo el UNIX y el lenguaje Perl, es el de buscar y/o substituir una sub cadena de texto dentro de otra cadena. En principio esto puede hacerse usando los métodos del objeto string, pero el problema surge cuando no tenemos una sub cadena fija y concreta sino que queremos buscar un texto que responda a un cierto esquema, como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \, o buscar palabras que contengan una serie de números consecutivos, etc.; es en estos casos cuando tenemos que utilizar las expresiones regulares.
La subcadena que buscamos en el texto es lo que se llama un patrón y se construye encerrando entre dos barras inclinadas ( / ) una serie de caracteres normales y símbolos especiales llamados comodines o metacaracteres, (algo parecido a buscar archivos con nombre *.bat cuando queremos encontrar los ficheros con extensión bat). Este patrón es una descripción del texto que se está buscando y JavaScript encontrará las subcadenas que concuerdan con ese patrón o definición. Las expresiones regulares se usan con el objeto Regular Expresion y también dentro de los métodos String.match, String.replace, String.search y String.split.

En la tabla que sigue se muestran los caracteres comodín usados para crear los patrones y su significado, junto a un pequeño ejmplo de su utilización. Significado Ejemplo Resultado
\ Marca de carácter especial                                   /\$ftp/ Busca la palabra $ftp
^ Comienzo de una línea                                          /^-/ Líneas que comienzan por –
$ Final de una línea                                                  /s$/ Líneas que terminan por s
. Cualquier carácter (menos salto de línea)           /\b.\b/ Palabras de una sóla letra
| Indica opciones                                                      /(L|l|f|)ocal/ Busca Local, local, focal
( ) Agrupar caracteres                      /(vocal)/ Busca vocal
[ ] Conjunto de caracteres opcionales                    /escrib[aoe]/ Vale escriba, escribo, escribe

La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior. Descripción Ejemplo Resultado
* Repetir 0 o más veces         /l*234/ Valen 234, 1234, 11234…
+ Repetir 1 o más veces                  /a*mar/ Valen amar, aamar, aaamar…
? 1 o 0 veces                 /a?mar/ Valen amar, mar.
{n} Exactamente n veces                    /p{2}sado/ Vale ppsado
{n,} Al menos n veces                                     /(m){2}ala/ Vale mmala, mmmala….
{m,n} entre m y n veces                           /tal{1,3}a/ Vale tala, talla, tallla

Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles, como puedan ser el fín de línea o un tabulador, o grupos predefinidos de caracteres (alfabéticos, numéricos, etc…) Significado Ejemplos Resultado
\b Principio o final de palabra /\bver\b/ Encuentra ver en “ver de”, pero no en “verde”
\B Frontera entre no-palabras /\Bver\B/ Empareja ver con “Valverde” pero no con “verde”
\d Un dígito /[A-Z]\d/ No falla en “A4”
\D Alfabético (no dígito) /[A-Z]\D/ Fallaría en “A4”
\O Carácter nulo
\t Caracter ASCII 9 (tabulador)
\f Salto de página
\n Salto de línea
\w Cualquier alfanumérico,
[a-zA-Z0-9_ ] /\w+/ Encuentra frase en “frase.”, pero no el . (punto).
\W Opuesto a \w
([^a-zA-Z0-9_ ]) /\W/ Hallaría sólo el punto (.)
\s Carácter tipo espacio (como tab) /\sSi\s/ Encuentra Si en “Digo Si “, pero no en “Digo Sientate”
\S Opuesto a \s
\cX Carácter de control X \c9 El tabulador
\oNN Carácter octal NN
\xhh El hexadecimal hh /\x41/ Encuentra la A (ASCII Hex41) en “letra A”

Anuncios
Publicado en Linux red[rojo]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: