2010-06-10 43 views
1

我有一个处理URL的高性能应用程序。对于每个需要从预定义池中检索适当设置的URL。每个设置对象都与一个URL模式相关联,该模式指示哪些URL应该使用这些设置。匹配规则如下:过滤/匹配URL的基本开源java包是什么?

  1. “google.com”匹配模式应匹配所有指向谷歌域的URL(因此maps.google.com和www.google.com/match匹配)。
  2. “* .google.com”应该匹配所有指向google.com子域的网址(因此,maps.google.com匹配,但google.com和www.google.com不匹配)。
  3. “maps.google.com”应匹配指向此特定子网域的所有网址。

除了上面的规则,每个匹配规则都可以包含路径,这意味着URL的路径部分应该以匹配规则路径开始。因此:“* .google.com/maps”与“maps.google.com/maps”匹配,但不匹配“maps.google.com/advanced”。

正如你所看到的,上面的规则是重叠的。在存在两个匹配相同URL的规则的情况下,最具体的应该应用。上面的列表从最不具体的到最具体的。

这似乎是一个标准问题,我希望能够使用现成的库,而不是编程自己。谷歌揭示了一些选择,但没有一个明确的方法来选择它们。你会推荐什么作为这个任务的好图书馆?

感谢, 波阿斯

+0

看看以前的这个问题:http://stackoverflow.com/questions/2230676/how-to-check-for-a-valid-url-in-java – 2010-06-10 12:06:00

回答

1

我不认为你需要一个特定的库来解决这个问题;标准的Java API拥有编写代码所需的所有工作,而无需太多工作。

查看java.util.regex.Pattern并找出需要匹配每条规则的正则表达式。您可能还想使用java.net.URL解析URL中的不同字段。

你已经说过你有一个优先方案来处理多个模式匹配URL的场景,所以这应该是这个谜题的最后一块。

它看起来像一个非常简单的任务。

相关问题