Java 正则表达式匹配Url中的外来字符

Java 正则表达式匹配Url中的外来字符,java,regex,url,Java,Regex,Url,我的正则表达式: \\b((?:https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]) 到目前为止,此正则表达式与字符串中的url匹配。但当url包含西里尔字母或其他语言字符时,此操作将失败 "(^(ht|f)tp(s?)://[0-9a-zA-Z\\p{L}][-.\\w\\p{L}]*(:[0-9])*(/?)([a-zA-Z0-9-.?,:'/\\\\+=&%$#_\\

我的正则表达式:

\\b((?:https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|])
到目前为止,此正则表达式与字符串中的url匹配。但当url包含西里尔字母或其他语言字符时,此操作将失败

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

这也适用于包含西里尔字符的URL

请参见:
\p{L}
包括
[a-zA-Z]
,您错过了
文件
协议。