Avatar billede dk-coders Nybegynder
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 :-)
Avatar billede arne_v Ekspert
21. juni 2014 - 04:23 #1
[0-9] kan skrives som \d

jeg forstaar ikke den *
Avatar billede dk-coders Nybegynder
21. juni 2014 - 12:37 #2
Tanken med * var at alt mellem nævnte kriterier er muligt.

Eksempel:

123.456.789.987 alt muligt 442
Avatar billede arne_v Ekspert
21. juni 2014 - 15:33 #3
alt muligt er .* eller .*?
Avatar billede dk-coders Nybegynder
21. juni 2014 - 22:40 #4
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?
Avatar billede arne_v Ekspert
22. juni 2014 - 01:08 #5
<?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.
Avatar billede dk-coders Nybegynder
07. januar 2015 - 16:06 #6
Lukketid - smid et svar :-)
Avatar billede arne_v Ekspert
07. januar 2015 - 16:15 #7
ok
Avatar billede dk-coders Nybegynder
07. januar 2015 - 16:18 #8
Tak for hjælpen.

Kunne du evt. lige tag et kig på mit nye spørgsmål: http://www.eksperten.dk/spm/1000644
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester