¿Hay alguna manera simple en C# para probar si una expresión regular es una expresión regular? En otras palabras, me gustaría verificar si un patrón de expresiones regulares proporcionado por el usuario está mal formado o no. Esto es puramente una prueba de sintaxis y no lo que se supone que la expresión regular logrará/probará. Gracias¿Cuál es la forma más fácil en C# para validar si una expresión regular está bien formada?
Respuesta
Puede intentar pasarlo al Regex constructor y atrapar el potencial ArgumentException que se lanza si el argumento es una expresión regular mal formada.
He aquí un ejemplo de C# Online .NET que utiliza excepciones:
EDIT:
ha eliminado el código de respetar los propietarios del copyright, por si acaso. Simplemente haga clic en el enlace de arriba para verlo.
Tengo que decir que esto no suena bien. También debería confiarse en que el subconjunto extremadamente pequeño de usuarios de computadoras que podrían ingresar correctamente una expresión regular interpretará correctamente el mensaje de excepción. Intentar validar su entrada y equivocarse sería motivo suficiente para que se vuelvan locos y desinstalen su programa.
Si los programadores experimentados no son en realidad su cliente objetivo, asegúrese de evitar la expresión regular.
¿Está diciendo que la aplicación no debería manejar la excepción? (lo que causaría que termine)? Eso me suena peor. –
Acepto, pero desafortunadamente no puedo cambiar los requisitos. Esto se usa para un motor de reglas de negocios que puede configurar el usuario y regex solo se usa para cubrir algunos casos extremos potenciales. – Zoman
@zoman - wow, eso no suena bien. Los programadores no entran en reglas de negocios. Por lo tanto, la necesidad de validar la expresión regular, sin duda. El siguiente modo de falla es que una expresión regular válida simplemente no filtra correctamente, pero ese no es el problema de su equipo. La felicidad del cliente sigue siendo cero. Muestre esta publicación a su arquitecto astronauta, eso es todo lo que puedo hacer. Suerte con ello. –
- 1. C# Expresión regular para validar una fecha?
- 2. ¿Cuál es la expresión regular más eficiente?
- 3. ¿Cuál es la expresión regular más simple para validar correos electrónicos para no aceptarlos a ciegas?
- 4. ¿Cómo validar una expresión regular?
- 5. C#: ¿cuál es la forma más fácil de restar tiempo?
- 6. Expresión regular para validar la hora válida
- 7. ¿Cuál es la forma más fácil de animar una línea?
- 8. ¿Es seguro validar una URL con una expresión regular?
- 9. ¿Cuál es la forma más fácil de crear una extensión C opcional para un paquete python?
- 10. Cómo validar una expresión regular con PHP
- 11. Cuál es la expresión regular más larga que ha visto
- 12. ¿Cuál es la forma más fácil de saber si una gramática BNF es ambigua o no?
- 13. expresión regular para validar cadena hexadecimal
- 14. Comprueba si una expresión regular cubre otra expresión regular
- 15. ¿Cuál es la forma más fácil de crear una tabla de Excel con C#?
- 16. Usar una expresión regular para validar si la entrada tiene dígitos no en ella
- 17. ¿Está bien formada la int main (int, char const * const *)?
- 18. ¿Cuál es la expresión regular para una URL como esta?
- 19. ¿Cuál es la forma más fácil de manejar una matriz asociativa en C#?
- 20. ¿Puedo probar si una expresión regular es válida en C# sin arrojar la excepción?
- 21. ¿Cuál es la forma más fácil de usar el código fuente C en una aplicación Java?
- 22. ¿Cuál es la expresión regular más correcta para una ruta de archivo UNIX?
- 23. ¿Cuál es la forma más fácil para que un programador C# se desarrolle para i-Phone?
- 24. ¿Cuál es la forma más fácil de obtener una OutOfMemoryException en C#?
- 25. ¿Cuál es la forma más fácil de averiguar si dos archivos son diferentes por programación?
- 26. ¿Cuál es la expresión regular de una palabra en español?
- 27. ¿Está utilizando una expresión regular más rápido que IndexOf?
- 28. ¿Cuál es la diferencia entre() y [] en una expresión regular?
- 29. ¿Expresión regular para encontrar una expresión regular?
- 30. ¿Cuál es la forma más fácil de usar reify (obtener un AST de) una expresión en Scala?
Con una expresión regular * mirada petulante en la cara * – JulianR
En serio, ¿por qué esta pregunta tiene 8 votos positivos? La documentación indica claramente que se lanza una 'ArgumentException' si hay un error al analizar la expresión regular. –
@JulianR: el lenguaje de expresiones regulares no es en sí mismo un idioma normal. Necesitas al menos un autómata pushdown para reconocer una expresión regular. –