none
Expresiones Regulares expr.Matches(content) RRS feed

  • Pregunta

  • Buenas tardes,

    una duda estoy buscando coincidencias en un texto y funciona bien cuando quiere otras veces se queda bloqueado pillado o bloqueado y ni da error ni nada.

    Dim mc as MatchCollection

    dim patron as string = ""

    dim expr as regex

    expr = new Regex("patron")

    mc = expr.matches(content) 'Se queda bloqueado algunas veces

    if mc.count > 0 then

    mivariable = mc.item(0).groups(3).value

    end if

    ¿Alguien sabe a que se debe ese bloqueo?

    Gracias!!!

    viernes, 16 de junio de 2017 14:42

Respuestas

  • Puede ser un problema del patron. No todos los posibles patrones que te puedes inventar para un regex son resolubles en tiempo acotado, sobre todo si usas patrones donde un grupo depende de otro.

    Obviamente me imagino que ese patron que vale "patron" es solo un ejemplo; como es logico eso solo funcionaria si el texto contiene la palabra "patron", y no se quedaria nunca bloqueado.

    Por cierto "content" es en realidad una variable o utilizas ahi una expresion que contiene llamadas a otros metodos? Si fuera asi, podria quedarse bloqueado dentro de alguno de los metodos a los que llama.

    viernes, 16 de junio de 2017 16:10
  • Buenos días,

    content almacena el texto donde quiero buscar y el string que puse como patron es la variable que almacena las expresiones regulares de búsqueda (iba sin comillas)

    expr = new Regex(patron)

    Voy a probar a seguir limitando las expresiones regulares de la búsqueda.

    Gracias!!!

    lunes, 19 de junio de 2017 7:57

Todas las respuestas

  • Puede ser un problema del patron. No todos los posibles patrones que te puedes inventar para un regex son resolubles en tiempo acotado, sobre todo si usas patrones donde un grupo depende de otro.

    Obviamente me imagino que ese patron que vale "patron" es solo un ejemplo; como es logico eso solo funcionaria si el texto contiene la palabra "patron", y no se quedaria nunca bloqueado.

    Por cierto "content" es en realidad una variable o utilizas ahi una expresion que contiene llamadas a otros metodos? Si fuera asi, podria quedarse bloqueado dentro de alguno de los metodos a los que llama.

    viernes, 16 de junio de 2017 16:10
  • Buenos días,

    content almacena el texto donde quiero buscar y el string que puse como patron es la variable que almacena las expresiones regulares de búsqueda (iba sin comillas)

    expr = new Regex(patron)

    Voy a probar a seguir limitando las expresiones regulares de la búsqueda.

    Gracias!!!

    lunes, 19 de junio de 2017 7:57