2017-05-05 3 views
0

Ich versuche URLs zu finden, die im Text defanded sind, aber kämpfen. Normalerweise würde ich Regex von CyberChef verwenden URLs zu fangen, wie folgt aus:Regex, um defanded URLs zu entsprechen

([A-Za-z]+://)([-\w]+(?:\.\w[-\w]*)+)(:\d+)?(/[^.!,?;"\x27<>()\[\]{}\s\x7F-\xFF]*(?:[.!,?]+[^.!,?;"\x27<>()\[\]{}\s\x7F-\xFF]+)*)? 

Dies ist jedoch ein wenig übertrieben für meine Bedürfnisse und fangen nicht, wo URLs mit eckigen Klammern defanged sind Beispiele der Spiele Ich bin Suche ist:

([a-zA-Z]+:\/\/)[\w]+?\[.?\][\w]+?\[.?\][\w]+ 

Aber das scheint nur zu fangen, wo der defanging vorhanden ist:

http://www.google.com 
hxxp://www[.]google[.]com 
hxxp://www.google[.]com 
foob://www[.]google.com 

Regex ich habe mit gespielt. Hilfe geschätzt.

+2

Könnten Sie verwenden [** '\ w +: // \ S +' **] (https://regex101.com/r/kkULvz/1)? – revo

+0

@revo einfach und effektiv. nett. –

Antwort

0

A defunged oder wörtliche Punkt kann als (?:\[\.\]|\.) so die Regex ausgedrückt werden würde

(?:[a-zA-Z]+:\/\/)?[\w]+?(?:\[\.\]|\.)[\w]+?(?:\[\.\]|\.)[\w]+ 

Demo: https://regex101.com/r/mtBaeY/2

+0

sehr cool. als ein Update für meine Frage ist es möglich, auch zu entsprechen, wenn die URL nicht mit hxxp vordefiniert: // d. h. nur die Domain? Anmerkung, ich weiß, dass dies nicht das ist, was ich gefragt habe, sondern nur zu sehen, wie einfach es ist, die Idee zu erweitern. –

+0

@ m0atz, ja, einfach '' 'nach der ersten Gruppe. Bitte sehen Sie die aktualisierte Antwort. –

+0

Sie Rock-Typ :) –

Verwandte Themen