Java URL 正则表达式不匹配

标签 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);

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

最佳答案

<> urlRegex 中的字符导致您的模式和输入之间不匹配 test String 。删除它们将产生 numUrls 2 的值正如预期的那样。

关于Java URL 正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508081/

相关文章:

java - JSF 2.0 和@WebServlet 中的自定义路径

java - 在 map 上围绕当前位置绘制圆圈,并仅显示该圆圈的标记,而不是 Android 中的外部圆圈

java - 实习非线程安全字符串变体和静态初始值设定项

javascript - 带有全局标志的正则表达式在 Javascript 中不起作用

ruby - Ruby 中的字符串常量

java - 如何创建具有这种特定结构的 JSON 数组?

java - 使用 Java 正则表达式验证长字符串中的日期

python - Unicode re.sub() 不适用于\g<0>(第 0 组)

c - 交换 char 指针的值

java - 在文本文件中查找字符串,删除行和下面的行