日期:2014-05-20  浏览次数:20783 次

java正则表达式
请问从
?fname=JINGXU~1.JPG&fdir=PIC&ftype=0&thumbP=30&thumbL=0&fail=0&time=1122796626
中分离出
1. JINGXU~1.JPG
2. PIC
3. 1122796626
用正则表达式该怎么写呢?谢谢
正则表达式

------解决方案--------------------
找规则。。没有规律的东西是没法用正则的
暂时我看出来的规律只有
=开头,&分段
也就是String[] s=str.split("&");
然后
Pattern p=Pattern.complile(".*?=(.*?)");
for(String ss:s){
Matcher m=p.matcher(ss);
while(m.find()){
System.out.println(m.groud(1));
}
}
------解决方案--------------------
你这个是要拿这几个的参数对应的参数值吧

public void main(String[] args){
  String s="?fname=JINGXU~1.JPG&fdir=PIC&ftype=0&thumbP=30&thumbL=0&fail=0&time=1122796626";
  String fname=getValue("fname",s);
  System.out.println(fname);
  String fdir=getValue("fdir",s);
  System.out.println(fdir);
  String time=getValue("time",s);
  System.out.println(time);
  //其它参数一样可以通过这种方法获得
}
//传入参数名url的参数,根据参数名获取参数值
public static String getValue(String name,String src){
   Matcher m=Pattern.compile("(?<=\\Q"+name+"\\E=).*?(?=\\&
------解决方案--------------------
$)").matcher(src);
   return m.find()?m.group():"";
}