[bcn-pm] Regex
Daniel Vidal de la Rubia
dvrubia a gmail.com
dim abr 23 04:32:25 PDT 2013
2013/4/23 Sergio González Rodríguez <sergiogoro86 a 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 a 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
Més informació sobre la llista de correu Barcelona-pm