Portál AbcLinuxu, 9. května 2025 22:45

Dotaz: Perl a regularni vyraz

8.11.2005 14:25 kafi | skóre: 25 | blog: muj_prvni_blog
Perl a regularni vyraz
Přečteno: 197×
Odpovědět | Admin
Zdravim vsechny, mam problem s regularnim vyrazem v perlu. Potrebuju kontrolovat spravnost zadani IP adresy. A mam tedy zadano:
if (! $ip_adresa~=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
     {
      print "SPatne zadana IP!";
      exit 2;
     }
else {
      /neco
     }

Tento zapis bohuzel nefunguje. Vyhovi i spatne zadane IP adrese.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.11.2005 14:39 mmm
Rozbalit Rozbalit vše Re: Perl a regularni vyraz
Odpovědět | | Sbalit | Link | Blokovat | Admin
if ($ip_adresa =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ ) {
        # OK
} else {
        # BAD
}
8.11.2005 14:41 mmm
Rozbalit Rozbalit vše Re: Perl a regularni vyraz
alebo:
if (! ($ip_adresa =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) ) {
        # BAD
} else {
        # OK
}
8.11.2005 14:48 kafi | skóre: 25 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: Perl a regularni vyraz
Moc dekuji, takova prkotina. Jedna zavorka a co udela.
8.11.2005 14:45 alex
Rozbalit Rozbalit vše Re: Perl a regularni vyraz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Operator m/regexp/ vyzaduje =~, ne ~=.
$ip_adresa =~ /regexp/ or die "Spatne zadana IP!";
#pokracovani
Navic, vas regulerni vyraz propousti i takove adresy: 999.888.777.666. Jednoduche \d{1,3} pro tyto ucely nestaci.
8.11.2005 15:21 kafi | skóre: 25 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: Perl a regularni vyraz
Ona cela ta podminka na kontrolovani vypada nasledovne
if (! ($ip_adresa =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) )
    {    
     print "Chybna IP adresa!";
     print LOG_FILE "Spatne zadana IP=$ipadresa!\n";
     $stav=1;&konec;
    }
   else
    {
     @kont_ip=split (/\./,$ip_adresa);
      foreach $ip (@kont_ip)
      	{
	   if ($ip >= 255)
	     {
	       print LOG_FILE "Satne zadana IP=$ip_adresa!\n";
	       $stav=1;&konec;
	     }
	}

Nic extra ale funguje. Jeste by se dalo vylepsit. Ale neni cas.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.