如何在java中使用通配符进行url匹配

如何在java中使用通配符进行url匹配,java,regex,pattern-matching,Java,Regex,Pattern Matching,我试图将给定的url与一组过滤条件进行匹配,根据这些条件,url将被接受或丢弃。这是一个样本模式 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_

我试图将给定的url与一组过滤条件进行匹配,根据这些条件,url将被接受或丢弃。这是一个样本模式


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/*/
根据条件,将接受以下URL


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/
只是想知道最好的方法是什么?我不确定是否可以使用复杂的通用正则表达式来处理这个问题,因为排除模式是不可预测的。我正在考虑删除通配符,创建两个单独的列表,用于精确匹配和包含匹配,然后让输入url对这两个列表进行迭代

任何指点都将不胜感激


谢谢

您只需创建一个正则表达式列表,并在不匹配任何正则表达式时接受url即可。url一旦与正则表达式匹配,就会被丢弃。这应该比创建一个复杂的正则表达式更容易维护。

感谢您的输入。这当然是一种处理问题的方法,但我试图避免,因为模式的数量可能很大,最终会为每个模式创建一个正则表达式模式。此外,名单还将不断增加。也许,由于我缺乏regex的经验,我想探索一种通用的regex模式或除regex之外的任何其他交易方式。谢谢你的建议。@Shamik如果你正在寻找更复杂的解决方案,你可以做的是建立前缀-后缀模式的层次结构,例如,第一级的域和较低级别的子目录。这样,您可以管理越来越多的模式,并且仍然有一个相对高效的匹配过程。