Después de de nuestra larga selección de datos dimos con la respuesta este enigma que suelen tener algunos los usuarios. Te compartimos la solución y deseamos resultarte de gran apoyo.
Solución:
No creo que regex sea la opción correcta para esto. ¿Has probado a analizar el valor? Si tienes que usar expresiones regulares, coincidiría d1,3
analizar el string y luego validar el número en código.
La forma más fácil de hacerlo sería analizar el string como un número y busque el número para estar en el rango adecuado.
Para hacer esto con expresiones regulares puras, debe identificar el patrón y escribirlo:
^(0?[0-9]1,2|1[0-7][0-9]|180)$
Esto tiene tres alternativas: una para números de uno y dos dígitos (permitiendo ceros a la izquierda), donde cada dígito puede ser cualquier cosa del 0 al 9. Y otra que especifica qué rango de dígitos se permite para cada dígito en un número de tres dígitos. número. En este caso, esto significa que el primer dígito debe ser 1, el segundo entre 0 y 7 y el último puede ser cualquiera. La tercera alternativa es solo para el número 180 que no encajaba bien en el patrón en otros lugares.
Un enfoque más directo podría ser
^(00,2[0-9]|0?[1-9][0-9]|1[0-7][0-9]|180)$
que simplemente se alterna para cada rango numérico complicado que pueda haber.
El recientemente lanzado rgxg
La herramienta de línea de comandos genera expresiones regulares que coinciden con un rango de números específico:
$ rgxg range -Z 0 180
(180|1[0-7][0-9]|0?[0-9]1,2)
Para obtener más información, consulte http://rgxg.sf.net.
Si te mola el asunto, puedes dejar un post acerca de qué te ha gustado de esta reseña.