java正则表达式

colwer 2013-08-13 09:56:36
请问从
?fname=JINGXU~1.JPG&fdir=PIC&ftype=0&thumbP=30&thumbL=0&fail=0&time=1122796626
中分离出
1. JINGXU~1.JPG
2. PIC
3. 1122796626
用正则表达式该怎么写呢?谢谢
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
colwer 2013-08-13
  • 打赏
  • 举报
回复
引用 2 楼 suciver 的回复:
你这个是要拿这几个的参数对应的参数值吧

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():"";
}
谢谢了
colwer 2013-08-13
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
找规则。。没有规律的东西是没法用正则的 暂时我看出来的规律只有 =开头,&分段 也就是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)); } }
谢谢了
colwer 2013-08-13
  • 打赏
  • 举报
回复
String a[] = result.split("&"); System.out.println(a[0].split("=")[1]); 像这样貌似很弱智啊,求一个更好的方法
suciver 2013-08-13
  • 打赏
  • 举报
回复
你这个是要拿这几个的参数对应的参数值吧

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():"";
}
失落夏天 2013-08-13
  • 打赏
  • 举报
回复
找规则。。没有规律的东西是没法用正则的 暂时我看出来的规律只有 =开头,&分段 也就是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)); } }

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧