AddThis Social Bookmark Button
AddThis Feed Button
Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
IMGP9800
IMGP9799
IMGP9798
IMGP9797
IMGP9796
Categorias
links
21
May

Expresiones Regulares

(QR Code)

RegEX

Las Expresiones Regulares son patrones que describen conjuntos de cadenas de caracteres sin enumerar sus elementos. Es una herramienta muy útil y es soportada por casi todos los lenguajes de programación, y sistemas operativos.

¿Cuando usar una Expresión Regular? Por ejemplo si necesitáis saber si una cadena de caracteres cumple un patrón determinado: Un teléfono son números separados por guiones, pero no puede tener otro tipo de caracteres. Veamos un ejemplo:

   Cadena: 985-21-21-21

   Patron: (\d{2,3}-\d{2}-\d{2}-\d{2})

Si desglosamos la expresión regular, vemos el metacarácter \d. Esto significa en lenguaje natural "un carácter que sea Dígito Decimal". Justo a continuación se le indica que debe tener un máximo de tres repeticiones y un mínimo de dos.

También puede darse el caso que no se sepa, o no se quiera limitar el número de repeticiones. Para eso están los operadores: + (una, ninguna o infinitas repeticiones), * (al menos una, o infinitas) y ? (ninguna o una pero no mas).

Otros metacaracteres son (hay muchos mas):

   \t – Representa un tabulador.

   \n – Representa la "nueva línea".

   \e – Representa la tecla "Esc" o "Escape" .

   \f – Representa un salto de página .

   \v – Representa un tabulador vertical.

   \d – Representa un dígito del 0 al 9.

   \w – Representa cualquier carácter alfanumérico.

   \s – Representa un espacio en blanco.

   \D – Representa cualquier carácter que no sea un dígito del 0 al 9.

   \W – Representa cualquier carácter no alfanumérico.

   \S – Representa cualquier carácter que no sea un espacio en blanco.

   \A – Representa el inicio de la cadena. No un carácter sino una posición.

   \ – Representa el final de la cadena. No un carácter sino una posición.

Con estos metacaracteres y los operadores, puede conseguirse cualquier patrón, y siempre nos queda la posibilidad de usar el metacárater "." que significa "cualquier carácter".

Otros operadores interesantes son el | (disyunción), ^ (negación o inicio de cadena dependiendo de su uso), $ (fin de cadena).

Vamos a hacer un ejemplo completo. Si tenemos que validar si una cadena podría ser una matrícula de coche valida, tendría que validar las antiguas y las nuevas.

   Matrícula Nueva: 0123-ABC


   Patrón: (\d{4}-[\D\w]{3})

   Matrícula Vieja: AB-0123-CS

   Patrón: ([\D\w]{1,2}-\d{4}-[\D\w]{2})

Ahora la unión de ambas nos dará el patrón final

   (\d{4}-[\D\w]{3}|[\D\w]{1,2}-\d{4}-[\D\\w]{2})

Para utilizar Expresiones Regulares desde PHP, utilizaremos las funciones

ereg(expresion,cadena)

que devuelve bool y

ereg_replace(expresión, sustitución, cadena)

que sustituye las coincidencias por el valor de sustitución.

Desde C# solo tenéis que hacer un

using System.Text.RegularExpressions

y luego declarar un objeto.

Regex regex = new Regex("^(\\d)$");
bool resultado = regex.IsMatch(cadena);

IsMatch devuelve verdadero o falso si la cadena cumple o no la expresion regular con la que se construyo regex.

En un próximo artículo os mostrare un ejemplo práctico de como utilizar estas funciones de Expresiones Regulares con PHP.


Nadie ha comentado (aun...)

No hay comentarios

Quieres dejar un comentario?