20. juni 2014 - 15:06
Der er
7 kommentarer og 1 løsning
preg_match_all
Hej, Det obligatoriske spørgsmål. Hvordan udføres pattern til at finde ip + port i dette eksempel: <p>123.456.789.123</p><p>5533</p> <h1>987.654.321.321</h1><h1>6611</h1> Der kan forekomme forskellige tags mellem numrene. Det forventes blot at finde ip samt port i nævnte rækkefølge. Nuværende pattern: /([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})*([0-9]{1,5})/ På forhånd tak :-)
Annonceindlæg fra Deloitte
[0-9] kan skrives som \d jeg forstaar ikke den *
Tanken med * var at alt mellem nævnte kriterier er muligt. Eksempel: 123.456.789.987 alt muligt 442
alt muligt er .* eller .*?
Har forsøgt med /([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*?([0-9]{1,5})/ uden held.. hvad mangler?
<?php $s = "<p>123.456.789.123</p><p>5533</p><h1>987.654.321.321</h1><h1>6611</h1>"; preg_match_all('/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*?([0-9]{1,5})/', $s, $matches); for($i = 0; $i < count($matches[0]); $i++) { echo $matches[1][$i] . ' : ' . $matches[2][$i] . "\r\n"; } ?> udskriver: 123.456.789.123 : 5533 987.654.321.321 : 1 hvilket er semi-korrekt. Regex tager ikke hoejde for at tal i h1 tag ikke skal betragtes som et port nummer.
07. januar 2015 - 16:06
#6
Lukketid - smid et svar :-)
07. januar 2015 - 16:15
#7
ok
Vi tilbyder markedets bedste kurser inden for webudvikling