Para empezar, no sugiero usar "*" en expresiones regulares. Sí, lo sé, es el delimitador de caracteres múltiples más utilizado, pero no obstante es una mala idea. Esto se debe a que, si bien coincide con cualquier cantidad de repetición para ese carácter, "any" incluye 0, que generalmente es algo para lo que desea generar un error de sintaxis, no aceptar. En cambio, sugiero usar el +
signo, que coincide con cualquier repetición de longitud> 1. Además, por lo que puedo ver, se trata de expresiones entre paréntesis de longitud fija. Como resultado, probablemente pueda usar la {x, y}
sintaxis para especificar específicamente la longitud deseada.
Sin embargo, si realmente necesita una repetición no codiciosa, sugiero consultar al todopoderoso ?
. Esto, cuando se coloca al final de cualquier especificador de repetición de expresiones regulares, obligará a esa parte de la expresión regular a encontrar la menor cantidad de texto posible.
Dicho esto, sería muy cuidadoso con el, ?
ya que, como el Destornillador sónico del Dr. Who, tiene una tendencia a hacer, ¿cómo debo decirlo, cosas "ligeramente" no deseadas si no se calibra cuidadosamente. Por ejemplo, para usar su entrada de ejemplo, identificaría ((1)
(observe la falta de un segundo rparen) como una coincidencia.