【问题标题】:Java URL counter is not workingJava URL 计数器不工作
【发布时间】:2013-03-19 18:31:46
【问题描述】:

我正在尝试计算任何给定 Java 字符串中的 URL 数量:

String test = "Hello World!";
String urlRegex = "<\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]>";
pattern = Pattern.compile(urlRegex);
matcher = pattern.matcher(test);
numUrls = matcher.groupCount();
System.err.println("numUrls = " + numUrls);

我很惊讶numUrls 不为零。关于为什么的任何想法?提前致谢!

【问题讨论】:

  • 你需要使用matcher.find(),总是一组。
  • 如果字符串中有6个URL怎么办?

标签: java regex url


【解决方案1】:

来自Matcher#groupCount()的javadoc

返回此匹配器模式中的捕获组数。

您的模式有一组 ...(https?|ftp|file)...,因此它返回 1。

【讨论】:

  • 嗯,不错的收获和 +1 - 那么我需要使用什么来代替 groupCount
  • 我正在尝试计算 Java 字符串中的 URL 数量。
  • 循环 find() 并使用您自己的计数器。
  • 那么喜欢while(matcher.find()) numUrls++;?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多