[caracas-pm] Expresión regular between
Luis Muñoz
lem at itverx.com.ve
Thu Jul 12 13:28:21 PDT 2012
On Jul 12, 2012, at 4:04 PM, Lenin Hernández wrote:
> $cadena =~ m/(\(.*\))/;
> que me retorna igualmente (xyz123)
>
> el *? si me consumía prácticamente el 100% del procesador hice la
> prueba con time
>
> usando *? = real 0m6.583s
> y usando solo * = real 0m6.130s
> (60mil lineas usando equipo modesto)
Si quieres ser más rápido, haz esto
$cadena =~ m{(\([^\)]*\))};
En un regexp, '.' hace match con cualquier caracter. Esto significa que el motor de expresiones regulares va a consumir toda la entrada hasta el final y luego, comenzará a "echar para atrás" (backtracking) hasta que encuentre el ')'. Usando la construcción que mostré más arriba, el motor de expresiones regulares va a consumir la entrada mientras no encuentre el ')'. Si tienes mucho texto después de lo que estás buscando, esta opción va a ser la mejor.
Saludos
-lem
More information about the caracas-pm
mailing list