帮忙解决一个有趣的正则表达式,先谢了!

frazzle2001 2003-08-29 04:35:33
有这样一行字符
<img src="a.gif"width="10"><img src="b.gif"><img src="c.gif"><src="d.swf">
现在要搜索出"a.gif","b.gif","c.gif","d.swf".就是要找出网页里的所有附属文件.请问这个正则表达式怎么写?先谢了!
我这样写
java.util.regex.Pattern p =java.util.regex.Pattern.compile("<[^>]*\\n?.*=(\"|')?([^>]*\\."+strType+")(\"|')?[^>]*\\n?>");
strType为文件类型,却只能找出c.gif和d.swf,相同的文件名只能找出最后一个.
...全文
14 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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()));
}

ashes 2003-08-29
  • 打赏
  • 举报
回复
Pattern.cmopile("<.*?src=\"(.*?)\\." + strType + "\".*?>")
取group(1)
frazzle2001 2003-08-29
  • 打赏
  • 举报
回复
huangry(凯撒)能不能说具体一点,怎么操作?
huangry 2003-08-29
  • 打赏
  • 举报
回复

我不知道你是怎么找的, 但是我觉得通过group的简单操作完全可以做到你所需要的
老土豆T 2003-08-29
  • 打赏
  • 举报
回复
这样写,
同文件名的只能获得最后一个,不同的能全部获得。

62,612

社区成员

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

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