Axel Richter: preg_match_all findet 0 nicht

Beitrag lesen

Hallo,

ich habe eine Zeile die eine IP-Adresse enthält mit angehängter Port-Nummer.

192.168.0.4:300

Mit dem folgenden finde ich auch korrekt die IP-Adresse

preg_match_all("|(([0-9]{1,3}).{1}([0-9]{1,3}).{1}([0-9]{1,3}).{1}([0-9]{1,3}):([0-9]{1,4}))|U",$line,$regs)

Zwar habe ich in der oku von preg_match_all auch die | am Anfang und Ende der Pattern gefunden, aber keine Erklärung dafür. Hast Du eine Erklärung, was die ODER-Verknüpfungen dort sollen? Ich würde es so versuchen:

$line = "192.168.0.4:300";

preg_match_all("/(([0-9]{1,3}).{1}([0-9]{1,3}).{1}([0-9]{1,3}).{1}([0-9]{1,3}):([0-9]{1,4}))/",$line,$regs);

Dann sollte sein:
$regs[0][0] = 192.168.0.4:300
und
$regs[1][0] = 192.168.0.4:300
$regs[1][1] = 192
$regs[1][2] = 168
$regs[1][3] = 0
$regs[1][4] = 4
$regs[1][5] = 300

Ich kanns zur Zeit, mangels PHP, nicht testen.

viele Grüße

Axel