[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