Regex Int Correcta

Ver el tema anterior Ver el tema siguiente Ir abajo

Regex Int Correcta

Mensaje por VictorH el Jue Dic 03, 2015 9:57 pm

Como os comentaba os dejo aquí la expresión regular (regex) correcta. La que nos pasó Luis tiene el problema de que no contempla límite de dígitos que puedes añadirle antes del punto, dando lugar a que valide cosas como 111111.999 en lugar de 111.111.999 como sería correcto. Podéis comprobarlo en anteriores ejercicios y veréis que efectivamente eso cuela.

La correcta sería esta:
"(-)?(\\d{1,3}(\\.\\d{3})*|\\d+)"

El funcionamiento de la misma es como sigue:
(-)? Admite el guión como denotación de negativo pero es opcional. Abrimos paréntesis para indicar que se aplica a las dos opciones contempladas
\\d{1,3} Seguido de una cadena de 1 a 3 dígitos
(\\.\\d{3})* A continuación de eso lo que le decimos es que repita de 0 a muchas veces el contenido del paréntesis (contenido)* que no es mas que una cadena consistente en un punto \\. y 3 dígitos \\d{3}
|\\d+) El | es un O de forma que le estamos diciendo que se puede dar toda la cadena que he descrito antes (menos el (-)?) o bien la siguiente, que es simplemente que puede darse una cadena consistente exclusivamente en 1 o muchos dígitos \\d+

Como véis es sencillo, cualquier duda preguntad
avatar
VictorH
Admin

Posts : 45
Join date : 01/10/2015

Ver perfil de usuario http://daw15.boardlog.com

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.