从字符串中提取固定格式的子字符串出来,可能有多个

下好觉割猫儿胡 2016-05-03 04:12:59
String str = "<p>其他内容<img src=\"/xxx/xxx/xx.jpg\" /> 中间有一些其他内容 <img src=\"/xxx/xxx/yy.jpg\" />"
String regEx = ".+ src=\"(.+)\" ";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if(m.find()){
System.out.println(m.groupCount());
for(int i = 1;i<=m.groupCount();i++){
System.out.println(m.group(i));
}
}

这样打印的结果只有一个src?? 求大神讲一哈问题出在哪里 -----> 在线等
...全文
137 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
String str ="<p><img src=\"/xxx/images/20160503/1462261461691090028.jpg\" title=\"1462261461691090027.jpg\" alt=\"Tulips.jpg\"/></p> <p><img src=\"/sss/images/20160503/1462261461691090027.jpg\" title=\"1462261461691090027.jpg\" alt=\"Tulips.jpg\"/></p>"; String regEx = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); while(m.find()){ for(int i = 1;i<=m.groupCount();i++){ System.out.println(m.group(i)); } }
  • 打赏
  • 举报
回复
引用 6 楼 zhouren1314 的回复:
[quote=引用 4 楼 zhouren1314 的回复:] 首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3.
.+
这个适合你的这种场景 具体按照规则改吧:
String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
3.
.+
这个适合你的这种场景[/quote] 是我理解的有问题 分给你了
  • 打赏
  • 举报
回复
引用 4 楼 zhouren1314 的回复:
首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3.
.+
这个适合你的这种场景 具体按照规则改吧:
String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
恩恩,我改成while了 然后在网上搜了一个正则... 解决了
乔不思 2016-05-03
  • 打赏
  • 举报
回复
引用 4 楼 zhouren1314 的回复:
首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3.
.+
这个适合你的这种场景 具体按照规则改吧:
String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3. Java code ? 1 .+ 这个不适合你的这种场景 具体按照规则改吧: Java code ? 1 String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
乔不思 2016-05-03
  • 打赏
  • 举报
回复
首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3.
.+
这个适合你的这种场景 具体按照规则改吧:
String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
乔不思 2016-05-03
  • 打赏
  • 举报
回复
引用 4 楼 zhouren1314 的回复:
首先: 1. if是不行的的应该用while 2.groupcount不是你理解的意思,是你的组的个数,你的正则中只有一个组---括号里面的 3.
.+
这个适合你的这种场景 具体按照规则改吧:
String regEx = "\\<img src=\"([\\/\\w+]+\\.[jpg|png])\"";
3.
.+
这个适合你的这种场景
  • 打赏
  • 举报
回复
大神在哪里啊
  • 打赏
  • 举报
回复
没人来,顶一下
  • 打赏
  • 举报
回复
顶一下又不怀孕

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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