用于网址的Crawler4j正则表达式模式

时间:2014-03-07 23:10:54

标签: regex crawler4j

我正在使用crawler4J,我想只为网址制作一些模式,但我无法解决该网址的正则表达式:

http://www.site.com/liste/product_name_changable/productDetails.aspx?productId={id}&categoryId={category_id}

我试试:

liste\/*\/productDetails:aspx?productId=*&category_id=*

private final static Pattern FILTERS = Pattern.compile("^/liste/*/productDetails.aspx?productId=*$");

但它不起作用。

我怎样才能使它成为正则表达式?

1 个答案:

答案 0 :(得分:1)

你的正则表达式中有几个错误。所有星号都应该是。+,表示你想要匹配至少一个或多个字符。问号符号需要转义。 category_id应为categoryId。 productDetails:aspx应该是productDetails.aspx。通过所有这些修复,正则表达式如下所示:

liste\/.+\/productDetails\.aspx\?productId=.+&categoryId=.+

此外,你不应该在正则表达式的开头和结尾有^或$。那些匹配输入的开头和结尾,所以如果你试图得到你的网址的一部分,它们将无法工作。