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: