[Cascavel-pm] ER's
Nilson Santos Figueiredo Junior
acid06 em gmail.com
Domingo Junho 19 18:45:32 PDT 2005
On 6/19/05, Marcilio <marciliomoura em uai.com.br> wrote:
> print "Erro" if $DNS_PRIMARIO =~ /[^0-9.^]|\^/;
> Porém não restringe quantos pontos vão ser digitados nem a
> faixa IP tipo Ip valido ou Invalido,quantas casas etc...
> alguem tem algum exemplo ou pode me dar um help ?
Pra esse tipo de coisa, o módulo Regexp::Common (que tem regex prontas
pra todo tipo de situação comum) costuma vir a calhar:
use Regexp::Common qw /net/;
$string =~ /$RE{net}{IPv4}/;
Além de validar, ele ainda captura o IP inteiro em $1 e as quatro
componentes do IP em $2 .. $5, dessa forma, você pode fazer assim:
my ($ip, @ip) = ($string =~ /$RE{net}{IPv4}/);
E o IP completo estará em $ip e na array @ip você terá o ip dividido nas faixas.
Informações sobre o módulo:
http://search.cpan.org/~abigail/Regexp-Common-2.120/
http://search.cpan.org/~abigail/Regexp-Common-2.120/lib/Regexp/Common/net.pm
-Nilson Santos F. Jr.
Mais detalhes sobre a lista de discussão Cascavel-pm