2017-06-21 3 views
-1

ich versuche, URL zu lesen vallid aus einem Dokument mit regex, aber es funktioniert nicht, wie ich erwarte ich habe diese regexwarum regex mit [nicht funktioniert

https?:\/\/?[[email protected]:%._\+~#=\[\]]{2,256}\.[a-z]{2,6}\b([[email protected]:%_\ +.~#?&//=]*) 

aber wenn ich versuche, zum Beispiel zu lesen "https://www.example.com/folder/folder/document.pdf" funktioniert es, aber wenn ich versuche, "https://www.example.com/folder/folder/document[first Versuch] .pdf" zu lesen, stimmt es nicht überein. Debugger sagt: "\ [das Zeichen übereinstimmt [wörtlich (Groß- und Kleinschreibung)"

FYI: Ich habe versucht, in auf http://regexr.com/

+0

'/' muss nicht in einem Zeichen verdoppelt werden Klasse, man ist genug. –

Antwort

3

Sie haben soeben \[\]

https?:\/\/?[[email protected]:%._\+~#=\[\]]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9\[\]@:%_\ +.~#?&//=]*) 

Sie können hinzufügen müssen finden Sie eine interessante URL passend Regex here und here

+0

das funktioniert aber .., das ist in dem Teil nach dem Punkt? warum muss es auch dort sein? – Jeroen

+1

weil die erste Klasse '/ 'nicht enthält, daher stimmt der Punkt mit dem letzten Punkt im Domainnamen überein, aber nicht mit dem Punkt der Dateierweiterung – 54l3d

+1

danke für die Erklärung :-), vielleicht sollte ich die Klimaanlage ein wenig durchdrehen niedriger – Jeroen