Allan Kok wrote:
> "Michael Zedeler" <michael@zedeler.dk> skrev i en meddelelse
> news:Ng5Yg.223$sr1.206@news.get2net.dk...
>
>>Allan Kok wrote:
>>
>>>Jeg har i et script, hvor jeg telnetter min router for at fange dens wan
>>>ip adresse.
>>>
>>>Hvordan får jeg trukket ip adressen ud, i stringen er der før ip adressen
>>>"WAN.[11;7H00:A0:C5:60:B5:75.[11;29H" og dette efter ".[11;45H"
>>
>>Jeg kan godt lave sådan en regex til dig, men det er nødvendigt at du er
>>meget mere specifik med hensyn til hvad der skal hives ud og hvordan de
>>øvrige dele kan variere.
>>
>>Har du læst perlre-man-siden?
>>
>>Hvad for forsøg har du gjort selv?
>
> Da jeg kun har meget lille erfaring i både perl og regex. Er mine forsøg
> endt med dette
> $output =~ /((\d+\.){3}\d+)/;
>
> I den tekst string jeg hiver ud fra telnet inde holder 2 ipadresser og 2
> subnet adresser. Jeg skal have fat i den første!
Din regex ovenfor ser da rimeligt god ud. Hvad er problemet? Du får godt
nok nogle delstrenge med ud, fordi du ikke får sagt til perl at den
indre gruppe ikke skal bruges til matches. Det kan man undgå med ?: -
sådan her:
((?:\d+\.){3}\d+)
Så hvis du i perl har at $input = 'fphfeiufhwewf127.0.0.1fwefefefe',
skulle du meget gerne fange ip-adressen med:
($ip) = $input =~ /((?:\d+\.){3}\d+)/;
Men igen - det er væsentligt at du tager i betragtning hvad $input
ellers indeholder, så du ikke fanger noget forkert.
Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at
http://michael.zedeler.dk/