如何在java中与通配符匹配url

时间:2012-02-08 19:53:23

标签: java regex pattern-matching

我正在尝试将给定的网址与一组过滤条件进行匹配,根据这些过滤条件,网址将被接受或丢弃。这是一个示例模式

 

http://test.blogs.com/between_the/
http://test.blogs.com/between_the/page*
http://test.blogs.com/between_the/archives*
*index.html*
*/page/*
http://abc.blogs.com/
http://area.test.com/index.php/blogs_a/blog_list/
http://area.test.com/index.php/blogs_b/blog_list/*/

根据条件,将接受以下网址


http://test.blogs.com/between_the/2012/02/autocad-ws-update-coming.html
http://abc.blogs.com/test
http://area.test.com/index.php/blogs_b/blog_list/page/2

而下面的内容将被过滤


http://test.blogs.com/between_the/page/2
http://test.blogs.com/index.html
http://area.test.com/index.php/blogs_b/blog_list/1/

只是想知道最好的方法是什么?我不确定这是否可以使用复杂的通用正则表达式来处理,因为排除模式是不可预测的。我正在考虑删除通配符并为完全匹配创建两个单独的List并包含匹配,然后让输入url对两个列表进行迭代。

任何指针都将受到赞赏。

由于

1 个答案:

答案 0 :(得分:1)

你可以简单地创建一个正则表达式列表,并在它与任何正则表达式都不匹配时接受一个url。一旦与正则表达式匹配,就会丢弃该URL。与创建单个复杂的正则表达式相比,这应该更容易,更易于维护。