2017-07-16 2 views
0

Meine regex passen:Regex fremde Zeichen in URL

\\b((?:https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]) 

Bisher in diesem regex entspricht eine URL in einer Zeichenkette. Dies schlägt jedoch fehl, wenn die URL kyrillische oder andere Sprachen enthält.

+0

sehen: [Java Regulärer Ausdruck für Sonderzeichen in allen Sprachen] (https://stackoverflow.com/questions/32188164/java-regular- expression-for-special-characters-über-alle-sprachen) –

Antwort

0
"(^(ht|f)tp(s?)://[0-9a-zA-Z\\p{L}][-.\\w\\p{L}]*(:[0-9])*(/?)([a-zA-Z0-9-.?,:'/\\\\+=&%$#_\\[\\]@!()*;~\\p{L}]*)?$)" 

Dies funktioniert für URLs in Ordnung zu kyrillische Zeichen enthalten

+0

'\ p {L}' beinhaltet '[a-zA-Z]', und Sie haben das 'file'-Protokoll verpasst. – Toto