Wie greifen IP:PORT mit regex?
Ich bin ein kleines IP:PORT-scraper in PHP. Das problem ist, dass ich bin ziemlich vertraut mit RegEx.
Also ich habe seit zusammenstückeln, was ich kann.
Hier ist was ich habe:
/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):([0-9]{1,5})\b/
Ich weiß, das ist nicht die beste. Zumindest nicht am Ende greifen Sie den port, weil es bedeutet, dass die ports werden in der Lage sein, Dinge wie 99999.
Also, es scheint zurück zu kehren zwei Spiele in dieser Art und Weise. Die IP:PORT und die PORT. Ich brauche nur zu packen, das volle IP:PORT, nicht das ein oder andere.
- ist der port nicht alles nach : ?
- Nein, es werden nur wenige ganze zahlen nach. (1-5 Ganzzahlen)
- Was bedeuten die input-strings Aussehen? also, wo werden Sie tatsächlich versuchen, Sie zu nehmen aus?
- verschiedenen Webseiten, in denen die HTML-variiert stark.
- ...und versuchen Sie zu greifen, Sie aus der vollständigen URLs (wie
http://IP:PORT/some/stuff
), oder Sie sind nurIP:PORT
auf Ihre eigenen? Dazu kommen, wird es immer ein:PORT
Abschnitt oder vielleicht einige von Ihnen nur seinIP
? - Sie sind in der Regel nur alleine, aber vielleicht haben Sie irgendeine Art von HTML-Code direkt vor oder nach. Nicht vollständige URLs in der Regel, wenn es möglich ist. Es IST immer ein : - PORT-Bereich.
- Sie können versuchen, diese : stackoverflow.com/a/25866412/3767784
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe einen regulären Ausdruck unter dem, was entspricht entweder ip-oder ip-Adresse und port.
Deine regex ist gut, also ich werde nur konzentrieren sich auf den Hafen selbst. Dieser regex :
Optional fangen keine gültige port-Nummer, und speichern Sie es auf mit dem Namen Gruppe-Anschluss.
Hinweis: freie Abstand muss aktiviert sein:
Könnten Sie versuchen, diese:
Gibt es ein paar Beispiele für IP-matching hier. Nehmen Sie einfach einen von Ihnen und legte
:\d{1,5}\b
am Ende (mit einem port).Ich habe diese vor langer Zeit.
FailedDev Hafen Teil seiner Antwort - verkürzt es ein wenig, und Grenzen setzen, wird dies nur fangen die port