问题描述
求一个java正则表达式 匹配以下格式1、 /xmad-f000/000000/material/1/20110923164401105.jpg (规则:以/xmad-f开头后接三位数字 斜杠 六位数字 斜杠 material 斜杠 1 斜杠 任意字符.jpg或者.gif.png)2、images/logo.gif 或者 logo.gif 、 ../../images/logo.gif等(字符串规则:即相对图片路径 不以 c:/ d:/ e:/ f:/ 或者 http开头,以图片格式后缀结尾就好) 问题补充:Rainbow702 写道
解决方案
Pattern p=Pattern.compile( "/xmad-f[0-9]{3}/[0-9]{6}/material/1/.*[\.jpg)|(\.gif)|(\.png)]"); 或者 Pattern p=Pattern.compile("/xmad-f\d{3}/\d{6}/material/1/.*[\.jpg)|(\.gif)|(\.png)]"); 测试了没问题!
解决方案二:
Pattern p=Pattern.compile("/xmad-f[0-9]{3}/[0-9]{6}/material/1/.*[\.jpg)|(\.gif)|(\.png)]");或者Pattern p=Pattern.compile("/xmad-f\d{3}/\d{6}/material/1/.*[\.jpg)|(\.gif)|(\.png)]");测试了一下:引用 String date = "/xmad-f000/000000/material/1/201109223164401105.jpg"; Pattern p=Pattern.compile("/xmad-f\d{3}/\d{6}/material/1/.*[\.jpg)|(\.gif)|(\.png)]"); Matcher m = p.matcher(date); if (m.find()) { System.out.print("ok"); } else{ System.out.print("notok"); }
解决方案三:
引用1、 /xmad-f000/000000/material/1/20110923164401105.jpg (规则:以/xmad-f开头后接三位数字 斜杠 六位数字 斜杠 material 斜杠 1 斜杠 任意字符.jpg或者.gif.png) String pattern = "^/xmad\-fd{3}/d{6}/material/1/.*[(\.jpg)|(\.gif)|(\.gif)]$";不知道对不对