Java URL正则表达式不匹配

0 java regex string url

我试图计算Java字符串中的URL数:

String test = "This http://example.com is a sentence https://secure.whatever.org that contains 2 URLs.";
String urlRegex = "<\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]>";
int numUrls = 0;
pattern = Pattern.compile(urlRegex);
matcher = pattern.matcher(test);
while(matcher.find())
    numUrls++;
System.err.println("numUrls = " + numUrls);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它告诉我字符串中有零(不是2)URL.任何想法为什么?提前致谢!

Rei*_*eus 5

<>字符urlRegex是造成你的模式和你的输入之间的不匹配test String.删除它们将产生预期的numUrls2.