Compartir a través de


Retroceso

Cuando las expresiones regulares tienen patrones de coincidencia opcionales o alternativos, el motor de búsqueda de coincidencias de expresiones regulares, mientras evalúa una cadena de entrada, puede bifurcarse en una o varias direcciones para encontrar todas las coincidencias posibles. Si no encuentra ninguna coincidencia en la primera dirección en la que busca, vuelve a la posición de la cadena de entrada en la que se produjo la bifurcación e intenta encontrar una coincidencia alternativa.

Considere, por ejemplo, una expresión regular diseñada para buscar coincidencias de las dos grafías de la palabra inglesa gray: gray y grey. El carácter de alternancia | se utiliza para crear la expresión regular gr(a|e)y, que coincide con ambas grafías. Supongamos que, cuando se aplica a la cadena de entrada greengraygrowngrey, el motor de búsqueda intenta, en primer lugar, encontrar una coincidencia de gray. Detecta que los dos primeros caracteres de la cadena de entrada, gr, coinciden, y, a continuación, falla en la e de green. Retrocede hasta la r (la última coincidencia encontrada antes del carácter alternativo) y trata de encontrar una coincidencia de grey. Al fallar en la segunda e, el motor de búsqueda continúa buscando hasta que por fin encuentra las dos palabras incrustadas gray y grey.

En el siguiente ejemplo de código se muestra la forma de crear esta expresión regular y la forma de aplicarla a la cadena de entrada.

    ' Define strings: "gray" and "grey".
    Dim r As New Regex("gr(a|e)y") 
    Dim m As MatchCollection = r.Matches("greengraygrowngrey")
    Console.WriteLine("Number of groups found = " & m.Count.ToString())
    // Define strings: "gray" and "grey".
    Regex r = new Regex("gr(a|e)y"); 
    MatchCollection m = r.Matches("greengraygrowngrey");
    Console.WriteLine("Number of groups found = " + m.Count.ToString ());

Vea también

Otros recursos

Expresiones regulares de .NET Framework