$str = 'Rapport fra 213.173.242.145 mailserver 4'; preg_match('/((?:[0-9]{1,2}|[0-1]\d\d|2[0-4]\d|25[0-5])(?:\.(?:[0-9]{1,2}|[0-1]\d\d|2[0-4]\d|25[0-5])){3})/', $str, $match);
echo $match[1];
Du kan også nøjes med et simplere regulært udtryk, hvis fire tal med punktum imellem, kan accepteres som værende en IP adresse.
Hvis strengen skulle indeholde flere IP-adresser, kan du bruge preg_match_all i stedet og hvis fx 1.2.3.4.5 ikke må accepteres som en IP-adresse (fordi der er 5 led i) kan du sætte \s forrest og bagerst i det regulære udtryk.
Ja, selvfølgelig .. den matcher fra venstre mod højre. Flyt [0-9]{1,2} om bagerst den sidste af blokkene, så det regulære udtryk kommer til at se således ud:
Yep nu ser det også ud til at virke. Du får dine point og jeg lukker det spørgsmål.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.