我有这么一串字符串(<a href="/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls"><tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls</tt></a></td>)乱码问题就不管他.但是我只想得到(CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls"><tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls)
该怎么处理啊.麻烦各位给点方法.
该怎么处理啊.麻烦各位给点方法.
从CDMA到xls有用.其它的都去掉
String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
String regex = "(CDMA.*?xls)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
}输出结果:
CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls
CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
String s = "<a href=\"/creport/files/20091130/xlsfiles/" +
"CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\">" +
"<tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls</tt></a></td>";
Pattern p = Pattern.compile("(?<=/).[^/]*\\.xls");
Matcher m = p.matcher(s);
if(m.find()) {
System.out.println(m.group());
}
}
}
这两段是一样的。
第一段是你URLEncoder.encode造成的。第二段应该是页面和servlet里面编码不一样造成的,比如一个UTF-8,一个GBK or GB2312。
public static void main(String[] args) {
String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
String regex = "(CDMA.*xls)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
}保险一点
public static void main(String[] args) {
String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
String regex = "<a href.*?(CDMA.*?xls) </tt> </a> </td>";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
}
}
String str = (........);//你的东西
str.substring(str.indexOf("/xlsfiles/")+"/xlsfiles/".length(),str.indexOf("</tt>"));