日期:2014-05-19  浏览次数:20651 次

加班,求救。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)才能匹配的
或者直接把页面的&转义