[Rio-pm] range de números em regexp

Breno G. de Oliveira breno em clavis.com.br
Quinta Junho 1 17:55:16 PDT 2006


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


Mais detalhes sobre a lista de discussão Rio-pm