[bcn-pm] Regex

deibyz deibyz a gmail.com
dim abr 23 04:57:36 PDT 2013


Tambien puedes asegurarte de que pillas solo el final de la linea (si es
asi en todos los casos) y envitar etiquetas que tengan numeros matcheando
tambien poniendo un anchor a tu regexp, algo asi como:

/(\d+)-(\d+)$/ and ($CDSstart, $CDSend) = ($1,$2)

Tambien deberia darte algo mas de performance ;-)

Salu2,
D.


2013/4/23 Daniel Vidal de la Rubia <dvrubia en gmail.com>

> 2013/4/23 Sergio González Rodríguez <sergiogoro86 en gmail.com>
> >
> > Hola mongers!
> >
> > Tengo el siguiente archivo:
> > >recoded    9765779-9766105
> >
> 0220240040020020040020020020020040040220220240040040020040040020020000020040040020
> > >2L_dmel-droEre 9765779-9766105
> > AGTAAACCGGTGAAGTAACCAGTGCTATTGTACGTGCGCCTCAAGGGAGCCACGTTGGTGGTGAT
> > >2L_dmel-droYak 9765779-9766105
> > AGTAAACCGGTGAAGTAACCAGTGATATTATAAGTGCGCCTCAAGGGAGCCACGTTGGTGGTGAT
> >
> > Quiero guardar los números que están separados por "-" al final de la
> línea.
> >
> > Uso regex así:
> > if ($_ =~ /(\d*-\d*)/) {
> >     ($CDSstart, $CDSend) = split /-/, $1;
> >     say "\$CDSstart<$CDSstart> \$CDSend<$CDSend>"
> > }
> >
> > Pero, problema, la regex /(\d*-\d*)/
> >     - Concuerda con "9765779-9766105"    #OK
> >     - Pero también, con el "-" que está entre dmel-dro    #No quiero
> éste guión sin \d delante y detrás
> >
> > Adjunto una imagen, y un link a la misma, del vim donde indica que "hace
> match" en esos guiones:
> > http://fotos.subefotos.com/54edf557ed336c42fe8455fc2d731350o.jpg
> >
> >
> > Feliz día de Sant Jordi ;)
> >
> > --
> > Sergio González
> > Bioinformático && Biólogo marino
> > http://about.me/sergiogoro
> >
> > _______________________________________________
> > llista dels Barcelona-pm
> > Barcelona-pm en pm.org
> > http://mail.pm.org/mailman/listinfo/barcelona-pm
> > BCN Perl Mongers: http://barcelona.pm.org
>
>
> Buenas,
>
> Como se puede ver en http://perldoc.perl.org/perlre.html#Quantifiers
> el cuantificador asterisco hace "match" si encuentra el elemento 0 o
> más veces, si quieres asegurarte que ese elemento aparece *al menos*
> una vez debes emplear el símbolo más '+'.
>
> Por lo que la expresión debería quedar como: /(\d+-\d+)/)
>
> Espero que te sirva :-),
>
> Daniel
> _______________________________________________
> llista dels Barcelona-pm
> Barcelona-pm en pm.org
> http://mail.pm.org/mailman/listinfo/barcelona-pm
> BCN Perl Mongers: http://barcelona.pm.org
------------ pr?a parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.pm.org/pipermail/barcelona-pm/attachments/20130423/d0e7cbf8/attachment.html>


Més informació sobre la llista de correu Barcelona-pm