Preguntas más frecuentes sobre System.Text.RegularExpressionsPreguntas más frecuentes sobre el espacio de nombres System.Text.RegularExpressions. ¿Por qué [insertar regex complicado y largo] no se corresponde con lo que espero? Nos encanta conocer sus ideas, problemas o peticiones. Quizás esté interesado en saber por qué se ha diseñado algo de una manera en particular, la mejor manera de solucionar un problema o los motivos por los que el código que ha creado no funciona como esperaba. Además, puede enviar al equipo de BCL sus sugerencias para versiones futuras de Framework, como clases adicionales que incluir (siempre es útil describir los escenarios que necesita admitir) o API nuevas para clases existentes. Para enviar su pregunta, simplemente envíe un correo electrónico a The BCL Team (bclpub@microsoft.com).
¿Por qué [insertar regex complicado y largo] no se corresponde con lo que espero? Si es así, vuelva a escribir algo más de la expresión. De lo contrario, reemplace mayor parte de la expresión con .*. Al final, encontrará el problema. Puede usar la misma técnica al comienzo de la expresión o incluso en subexpresiones internas que se aíslan fácilmente. También es importante tener en cuenta qué es lo que coincide y no sólo "si coincide". Para ello, usamos el siguiente fragmento de código a fin de extraer todas las coincidencias, grupos y capturas. El resultado puede ser muy largo en el caso de expresiones complejas, pero es muy útil.
Regex se bloquea cuando intento buscar coincidencias usando mi expresión. ¿Cuál es la razón?
Este código crea cadenas de longitud creciente que contienen sólo la letra "a". Observe que la expresión regular no coincidirá con estas cadenas, porque es necesario que la cadena termine en una "q". Si ejecuta este fragmento de código, verá que tras algunas iteraciones en cadenas cortas, comienza a tardar mucho tiempo en finalizar cada llamada a r.Match(s). Con cada letra agregada, tarda el doble de tiempo. La solución es intentar deshacerse completamente de todos los cuantificadores anidados. Normalmente, esto no es un problema, ya que la mayoría de las expresiones se pueden escribir sin ellos. Si sabe de algún caso que no se puede escribir sin usar cuantificadores anidados, nos interesa verlo. |