Compartir a través de


Cuantificadores y coincidencias vacías

Actualización: noviembre 2007

Los cuantificadores *, +, {n,m{ Esta regla impide que los cuantificadores entren en bucles infinitos de coincidencias vacías, cuando m es infinito (aunque la regla se aplica aunque m no sea infinito).

Por ejemplo, (a?)* coincide con la cadena "aaa" y captura subcadenas del patrón (a)(a)(a)(). Observe que no se produce una quinta captura vacía, porque en la cuarta captura vacía el cuantificador deja de repetirse.

Del mismo modo, (a\1|(?(1)\1)){0,2} coincide con la cadena vacía en lugar de con "a", porque nunca prueba la expansión ()(a). El cuantificador {0,2} sólo permite coincidencias vacías en la última iteración. En cambio, (a\1|(?(1)\1)){2} coincide realmente con "a", ya que prueba ()(a); el número mínimo de iteraciones, 2, obliga al motor a repetir la coincidencia después de una coincidencia vacía.

Vea también

Otros recursos

Expresiones regulares de .NET Framework