[caracas-pm] Expresión regular between

Francisco Obispo fobispo at isc.org
Thu Jul 12 08:44:48 PDT 2012


$cadena = "perl monger (xyz123) caracas";
$cadena =~ m/.*?\((.*?)\).*?$/;
print $1;

el paréntesis en las expresiones regulares sirve para agrupar las expresiones, y guardar su contenido en variables dinámicas: $1 ... $n

si quieres hacer un match dentro de paréntesis, debes asegurarte que éstos sean considerados como texto y no como parte de la expresión..para eso usa: \( y \)

.*? -> hace match de todo, aunque no lo usaría en un string muy grande, pues corres el riesgo de capturar mas de lo que deseas, usar mas memoria y de paso consumir mas CPU.

te recomiendo que leas el manual de expresiones regulares de perl: perldoc perlre

tambien hay buenos libros al respecto.

saludos





On Jul 12, 2012, at 8:17 AM, Lenin Hernández wrote:

> Saludos, ando buscando una expresión regular que capture todo desde un
> carácter hasta otro (inicio y fin) incluyendo dichos caracteres,
> es decir tengo una cadena = "perl monger (xyz123) caracas" busco
> capturar o quitar todo lo que esta dentro de los paréntesis ( )
> incluyendo los propios paréntesis
> 
> He intentado $cadena =~ s{[()]}{}g;
> lo cual me deja xyz123
> 
> también intente
> $cadena =~ s{[(,)]}{}g;
> $cadena =~ s{[(.*)]}{}g;
> $cadena =~ s{[(.*?)]}{}g;
> obteniendo los mismos resultados
> 
> 
> La expresión me debería poder servir para para capturar otros patrones
> de la misma forma es decir los que este en [xyz123] o #xyz123#
> 
> Saludos y gracias por las respuestas!!
> 
> -- 
> Lenin Hernández
> Twitter: @leninmhs
> 2.6.32 on Debian Wheezy
> CUCLUG.: "no hay nada mejor, que hacer lo que realmente te gusta".
> Linus Tordvalds.: "If it compiles, it is good, if it boots up it is perfect".
> _______________________________________________
> caracas-pm mailing list
> caracas-pm at pm.org
> http://mail.pm.org/mailman/listinfo/caracas-pm

Francisco Obispo 
email: fobispo at isc.org
Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
PGP KeyID = B38DB1BE



More information about the caracas-pm mailing list