我正在使用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=*$");
但它不起作用。
我怎样才能使它成为正则表达式?
答案 0 :(得分:1)
你的正则表达式中有几个错误。所有星号都应该是。+,表示你想要匹配至少一个或多个字符。问号符号需要转义。 category_id应为categoryId。 productDetails:aspx应该是productDetails.aspx。通过所有这些修复,正则表达式如下所示:
liste\/.+\/productDetails\.aspx\?productId=.+&categoryId=.+
此外,你不应该在正则表达式的开头和结尾有^或$。那些匹配输入的开头和结尾,所以如果你试图得到你的网址的一部分,它们将无法工作。