Posterior a consultar especialistas en el tema, programadores de diversas áreas y maestros hemos dado con la respuesta a la cuestión y la compartimos en esta publicación.
Solución:
Me sorprende que nadie haya mencionado la versión más simple:
d
Esto coincidirá con cualquier dígito. Si su motor de expresiones regulares es compatible con Unicode, esto significa que coincidirá con cualquier cosa que esté definida como un dígito en cualquier idioma, no solo con los números arábigos del 0 al 9.
No hay necesidad de ponerlo [
square brackets]
para definirlo como una clase de personaje, como lo hizo una de las otras respuestas; d
funciona bien por sí solo.
Dado que no está anclado con ^
o $
, coincidirá con cualquier subconjunto de la string, entonces si el string contiene al menos un dígito, esto coincidirá.
Y no hay necesidad de la complejidad adicional de +
, ya que el objetivo es solo determinar si hay al menos uno dígito. Si hay al menos un dígito, coincidirá; y lo hará con un mínimo de gastos generales.
La expresión regular que está buscando es simplemente esta:
[0-9]
No mencionas qué idioma estás usando. Si su evaluador de expresiones regulares obliga a que los RE estén anclados, necesita esto:
.*[0-9].*
Algunos motores RE (¡los modernos!) También le permiten escribir el primero como d
(mnemotécnicamente: Digit) y el segundo luego se convertiría .*d.*
.
En Java:
public boolean containsNumber(String string)
return string.matches(".*\d+.*");
Te invitamos a añadir valor a nuestro contenido aportando tu veteranía en las aclaraciones.