求一正则表达式的写法

lEFTmOON 2006-04-28 09:42:47
将类似于
<img alt="" hspace=0 src="c:\documents and settings\zhangjian\桌面\1189_288944.jpg" align=baseline border=0>的字符串中的alt和src标记保留下来,其中alt标记不是必有,而且就是有,和src的位置也没有固定的顺序。
替换后的结果为
<img alt="" src="c:\documents and settings\zhangjian\桌面\1189_288944.jpg" />
最后以闭合方式结束,/>
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的小青蛙 2006-05-22
  • 打赏
  • 举报
回复
如果搂主要求alt和src的位置也没有固定的顺序的话
i2u112233 2006-05-12
  • 打赏
  • 举报
回复
mark
treeroot 2006-05-11
  • 打赏
  • 举报
回复
String s="<img alt=\"\" hspace=0 src=\"c:\\documents and settings\\zhangjian\\桌面\\1189_288944.jpg\" align=baseline border=0>";
String reg="(<img)\\s+(alt=\"[^\"]*\")?.+?(src=\"[^\"]+\").+?(>)";
System.out.println(s.replaceAll(reg,"$1 $2 $3 /$4"));
zclgod 2006-05-11
  • 打赏
  • 举报
回复
帮顶
低调的小青蛙 2006-05-11
  • 打赏
  • 举报
回复
表达式:
<img(?:(?:(?!alt|src)(?:"[^"]*"|'[^']*'|[^"'>]))*(?:(alt="[^"]*")|(src="[^"]*"))?)*>

替换为:
<img $1 $2 />

测试工具:
http://www.regexlab.com/zh/replshop.asp?pat=%3Cimg%28%3F%3A%28%3F%3A%28%3F%21alt%7Csrc%29%28%3F%3A%22%5B%5E%22%5D*%22%7C%27%5B%5E%27%5D*%27%7C%5B%5E%22%27%3E%5D%29%29*%28%3F%3A%28alt%3D%22%5B%5E%22%5D*%22%29%7C%28src%3D%22%5B%5E%22%5D*%22%29%29%3F%29*%3E&rto=%3Cimg%20%241%20%242%20/%3E&txt=%3Cimg%20alt%3D%22%22%20hspace%3D0%20src%3D%221189_288944.jpg%22%20border%3D0%3E%0D%0A%3Cimg%20hspace%3D0%20src%3D%221189_288944.jpg%22%3E%0D%0A%3Cimg%20hspace%3D0%20src%3D%221189_288944.jpg%22%20alt%3D%22okokok%22%3E


这个表达式要求 alt 和 src 的内容用 双引号 包含,如果搂主想要能够自动适应单双引号的,搂住可自己改写。

参考文章:
http://www.regexlab.com/zh/regref.htm
lEFTmOON 2006-05-11
  • 打赏
  • 举报
回复
我晕,估计都沉不见了……
fenghuangling 2006-04-28
  • 打赏
  • 举报
回复
帮你顶一下

62,614

社区成员

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

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