正则表达式的转义序列无效,以匹配Java中的URL

时间:2012-04-25 13:05:46

标签: java regex

我尝试编写正则表达式来匹配Java中的URL。我在互联网上找到了正则表达式,它在在线正则表达式编辑器中运行良好。 当我尝试在日食上运行它时,它会出现以下错误:无效的转义序列(有效的转义序列是\ b \ t \ n \ f \ r \“\'\)

(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?

我该如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:4)

请注意,在Java字符串中,您必须转义反斜杠(即\将导致字符串文字"\\")。因此,表达式应如下所示:

String expression = "(http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?";