加班,求救。java中matches 请帮忙
public static void main(String[] args) {
String a="http://sp.cqcoal.com/sell/show.php&&&itemid=11202";
String b="http://sp.cqcoal.com/sell/show.php&&&itemid=\\d*";
System.out.println(a.matches(b));
if (a.matches(b)) {
System.out.println("messi");
}else {
System.out.println("ronaldo");
}
}
输出结果为:true messi
但是在网页上调用一个方法,代码跟main函数一样,传的值也是一样。打印调试验证过,可是matches方法却得到是false!!!
无语了,求救。
------解决方案--------------------你网页上写的是 JS 么?JS的语法略有不同的。
网页是啥样的代码,贴出来看看。
------解决方案--------------------
把网页上的内容从System.out中完整显示出来看看吧。
网页上很多信息,由于HTML转码问题,跟你所设想的未必一致。
------解决方案--------------------在main方法里,调试一下,具体看a、b的值倒底是什么。
也许抓过来的地址有空格,或者编码的问题。
------解决方案--------------------
有没有可能是转义的问题?
------解决方案--------------------
页面上传过来的&符号可能会被转码(encode)的,所以要还原(decode)才能匹配的
或者直接把页面的&转义