[Rio-pm] range de números em regexp
Fernando
fernandocorrea em gmail.com
Quarta Junho 7 14:41:59 PDT 2006
Robson Mothé wrote:
> Hum...
>
> Só hoje que eu ví essa mensagem!
> Que tal tentar:
>
> $numero = 6;
> ($numero =~ m![5-9]!)?(print "achei!\n"):(print "babou!\n");
>
> ou
>
> $numero = "Eu tenho 25 anos";
> ($numero =~ m![10-30]!)?(print "achei!\n"):(print "babou!\n");
>
> Perl trabalha de duas maneiras com o átomo dentro do "[]", vale para
> uma interseção de valores dentro da tabela ASC ou para uma interseção
> de valores:
>
> abcdef = [a-f];
> abcdefABCDEF = [a-fA-F];
> 10,11,12,13...30 = [10-30].
>
> Testem aí depois me falem!
>
> Um forte abraço,
>
>
> Robson
>
>
> --
> Robson Mothé
> rmothe em gmail.com <mailto:rmothe em gmail.com>
> mothe em rio.pm.org <mailto:mothe em rio.pm.org>
> GNU/Linux User #318909
>
>
>
> Em 01/06/06, *Breno G. de Oliveira* <breno em clavis.com.br
> <mailto:breno em clavis.com.br>> escreveu:
>
> Pessoal,
>
> recentemente um amigo meu me apresentou o seguinte problema:
>
> "como fazer uma ER que só case se encontrar um número dentro de um
> intervalo/alcance/range qualquer?"
>
> Bem - disse eu -, para fazer isso com números entre 0 e 9 é
> relativamente fácil. Para buscar, por exemplo, por números entre 5
> e 8,
> poderíamos usar:
>
> /[5678]/
>
> Mas e quando queremos encontrar números com mais de um dígito?
>
>
> Eis, então, o problema: fazer uma ER que case SE E SOMENTE SE o valor
> estiver entre 16 e 34.
>
> Em Perl 6 é fácil (aí Fernando! ;P), partindo do princípio que o
> RFC 197
> foi respeitado, bastaria fazer:
>
> /(16,32)/
>
> mas e em Perl 5? Alguém se habilita?
>
> obs: não vale fazer /16|17|18|19|20|21|...|29|30|31|32/ =)
>
>
> []s
>
> breno
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org <mailto:Rio-pm em pm.org>
> http://mail.pm.org/mailman/listinfo/rio-pm
> <http://mail.pm.org/mailman/listinfo/rio-pm>
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Rio-pm mailing list
>Rio-pm em pm.org
>http://mail.pm.org/mailman/listinfo/rio-pm
>
fernando em ubuntu:~$ perl -e '$numero = "Eu tenho 61 anos";
($numero =~ m![25-60]!)?(print "achei!\n"):(print "babou!\n");'
achei!
fernando em ubuntu:~$
Mais detalhes sobre a lista de discussão Rio-pm