[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT Perl reguläre Ausdrücke



Jan Trippler schrieb am 18.02.2003 21:08:
> On Die, 18 Feb 2003 at 00:33 (+0100), Mario Duve wrote:
>> Hallo,
>> 
>> Wie könnte ich folgenden Regulären Ausdruck erweitern,
>> damit nicht z.B. 432.444.259.666 eigegeben werden kann?
>> Also größer gleich 1, kleiner gleich 254
>> 
>> ---->> code
>> 
>> if ($ip =~ /^(\d{1,3}\.){3}\d{1,3}$/) {
>>                  return 1;
>>         } else {
>>                  return 0;
>>         }
>> 
>> <<-----
> 
> Wie schon geschrieben: Mit RE wohl nicht zu machen. Meine Variante:
> 
> my $rc = 0;
> foreach (split /\./, $ip) {
>   $rc = 1 unless ($_ & 255) == $_ and $_;
> }
> 
> Jan
> 

geht schon mit regex:
if ($ip =~ m/^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.
(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.
(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.
(\d|[01]?\d\d|2[0-4]\d|25[0-5])$/) {

print "\n\nIP = $IP ist eine gültige IP\n;

}

(Bedingungsanteil alles in einer Zeile, oder \<CR>)

-hth
-Jörg



Reply to: