viernes, 1 de julio de 2016

{} - Encuentra un elemento un número específico de veces

Los metacaracteres { y } se usan para expresar el número mínimo y máximo de coincidencias requeridas. Pueden especificarse de cuatro formas diferentes:

Tabla 19-3: Especificando el número de coincidencias
Especificador Significado
{n} Encuentra el elemento precedente si ocurre exactamente n veces.
{n,m} Encuentra el elemento precedente si ocurre al menos n veces, pero no más de m veces.
{n,} Encuentra el elemento precedente si ocurre n o más veces.
{,m} Encuentra el elemento precedente si ocurre no más de m veces.

Volviendo a nuestro ejemplo anterior con los números de teléfono, podemos usar este método de especificar repeticiones para simplificar nuestra expresión regular de:

^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

a:

^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$

Probémoslo:

[me@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$'
(555) 123-4567
[me@linuxbox ~]$ echo "555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$'
555 123-4567
[me@linuxbox ~]$ echo "5555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$'
[me@linuxbox ~]$

Como podemos ver, nuestra expresión revisada puede validar correctamente tanto los números con paréntesis como sin paréntesis, mientras que rechaza aquellos números que no están formateados correctamente.

No hay comentarios:

Publicar un comentario