RegExp: buscar números mayores a un número dado en Writer

Estimado lector, te has distraído. Sí, sé que es duro, pero las cosas hay que decirlas: ya ha pasado casi un año desde la publicación de la edición 2018 de Domando al escritor y hay dos errores que no has visto. Bueno, un lector de la edición inglesa vio uno de ellos, ¡pero tu no has visto ninguno! Yo tampoco, es verdad, ¡pero estamos hablando de ti!

El primer error está en la página 20, donde te encuentras con un .dev en lugar del .deb que debería ir. Este error vaya y pase, que la v y la b están muy cerca en el teclado, ¡pero el otro!

En uno de los ejemplos del capítulo de las expresiones regulares cuento cómo encontrar números entre 1 y 50, pero no mayores. ¡Aquí está el error que no viste!

Yo tampoco lo vi, lo sé, que por algo está allí, pero insisto, ¡estamos hablando de ti!

El gazapo está en que allí uso la expresión \d para indicar un dígito genérico, ¡pero no la había definido en ningún lado! Se me traspapeló en la lista de expresiones. ¡Un año entero y nadie lo vio!

En fin, que peor fue el error de la versión 2016 con la desastrosa explicación de las listas numeradas… pero ese mejor lo olvidamos, que ahora está bien.

Y sí, \d equivale a [:digit:] y sirve para encontrar un dígito cualquiera.

Bueno, zanjado esto y ya que estamos aquí hagamos otro ejemplo para encontrar un número entero mayor que un dado número. Por ejemplo, busquemos en un texto cualquiera números enteros mayores que 42, pero sin incluir 42.

Veamos, para encontrar números del 43 al 49 podemos utilizar

\b4[3-9]\b

es decir, un cuatro seguido de un dígito entre el 3 y el 9. (Lee el libro así no tengo que explicarte aquí qué significa \b 😉 ). Si ahora queremos buscar números entre 50 y 99 podemos utilizar

\b[5-9]\d\b

Finalmente, podemos encontrar números del 100 para arriba con

\b[1-9]\d{2,}\b

Para buscar todo eso junto, pues solo tenemos que utilizar las barras verticales

\b4[3-9]\b|\b[5-9]\d\b|\b[1-9]\d{2,}\b

Y así las cosas. La próxima vez hay que estar más atento. Digo, yo también tengo que estarlo, ¡pero estamos hablando de ti!