看看这个正则表达式怎么写?

wsrubbish 2003-08-20 06:07:31
要搜索一行语句中所包含的有.jpg后缀的文件名.
比如:
<img src="test1.jpg"></img><img src="test2.jpg"></img><img src="test3.jpg"></img>
要搜索出test1.jpg和test2.jpg,test3.jpg
我的正则表达式如下:可只能搜索出后一个test3.jpg,前两个搜索不出,请高手指点.
java.util.regex.Pattern p = java.util.regex.Pattern.compile("<[^>]*\\n?.*=(\"|')?(.*\\."jpg")(\"|')?.*\\n?[^<]*>");
java.util.regex.Matcher m = p.matcher(v.elementAt(i).toString());
while (m.find()) {
System.out.println(m.group(2));
}
输出为test3.jpg
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SureBeiJing 2003-09-04
  • 打赏
  • 举报
回复
String yourStr = "XXXXX";

Pattern p1 = Pattern.compile( "src\\p{Punct}[\\s]*\\p{Punct}[\\w]+\\p{Punct}[\\w]+\\p{Punct}" );
Pattern p2 = Pattern.compile( "[\\w]+\\p{Punct}[\\w]+" );
Matcher m1 = p1.matcher( yourStr );
while (m1.find()){
String tmp = yourStr.substring(m1.start(),m1.end());
Matcher m2 = p2.matcher( tmp );
m2.find();
System.out.println( tmp.substring(m2.start(),m2.end()));
}
frazzle2001 2003-08-29
  • 打赏
  • 举报
回复
顶一下
wsrubbish 2003-08-25
  • 打赏
  • 举报
回复
这个正则表达挺难匹配的,还没有完全解决,还是只能找出一个文件,兄弟们快帮个忙,想一下.
加分!
scbb 2003-08-22
  • 打赏
  • 举报
回复
up,对了后把代码贴出来吧?
wsrubbish 2003-08-22
  • 打赏
  • 举报
回复
ralihm(raly)你好,我将表达式换为你所说如下:
java.util.regex.Pattern.compile("<[^>]*\\n?.*=(\"|')?([^>]*\\."jpg")(\"|')?[^>]*\\n?>")
这样的话不同文件类型的文件都能搜索出来,但同一种类型就只能搜索后一个.
比如<img src="test1.jpg"><img src="test2.jpg"><img src="test3.jpg">
只能搜索出test3.jpg
<img src="test1.jpg"><img src="test2.css"><img src="test3.swf">
搜索出test1.jpg,test2.css,test3.swf
即同类文件只能搜索出一个,帮忙看一下.
fpwang 2003-08-20
  • 打赏
  • 举报
回复
System.out.println(m.groupCount());
看看到底是多少个结果?
fpwang 2003-08-20
  • 打赏
  • 举报
回复
?System.out.println(m.group(2)); ????

62,614

社区成员

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

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