如何使用正则添加img标签的max-width属性

安卓机器人 2012-05-18 05:58:18
原html样式字符串如下:

direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord. </div>
<div><img alt="" style="width: 560px; height: 310px; src="/Upload/sys/twitter_facebook%20spreekuur.jpg" /><br />
</div>
<div data-font="lucida grande" data-show-faces="false" data-width="450" data-send="true"


如何替换下成下面的


direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord. </div>
<div><img alt="" style="max-width:100%; width: 560px; height: 310px; " src="/Upload/sys/twitter_facebook%20spreekuur.jpg" /><br />
</div>
<div data-font="lucida grande" data-show-faces="false" data-width="450" data-send="true"


诸位朋友会发现只是在img的内部style属性里添加了max-width=100%;

谢谢各位了!
...全文
652 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstur4 2012-05-26
  • 打赏
  • 举报
回复
(<img[^>]*style=\") 查找<img 开头的 然后可以是除>以外的任意字符的组合,也就是说可以使其他属性,比如src之类的,然后是style=“开头的,也就是你需要的,这里加上max-width="100%"就可以了
安卓机器人 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

Java code

public class Regex {
public static void main(String[] args) {

String str = "direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord.&nbsp……
[/Quote]

多谢这位大哥了,不过我没弄明白为什么可以,你能解释下吗?谢谢了!
cstur4 2012-05-19
  • 打赏
  • 举报
回复

public class Regex {
public static void main(String[] args) {

String str = "direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord. </div>"
+"<div><img alt=\"\" style=\"width: 560px; height: 310px; src=\"/Upload/sys/twitter_facebook%20spreekuur.jpg\" /><br />"
+"</div>"
+"<div data-font=\"lucida grande\" data-show-faces=\"false\" data-width=\"450\" data-send=\"true\""
+ "direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord. </div>"
+"<div><img alt=\"\" style=\"width: 560px; height: 310px; src=\"/Upload/sys/twitter_facebook%20spreekuur.jpg\" /><br />"
+"</div>"
+"<div data-font=\"lucida grande\" data-show-faces=\"false\" data-width=\"450\" data-send=\"true\"";


Pattern p = Pattern.compile("(<img[^>]*style=\")");
Matcher m =p.matcher(str);
StringBuffer sb = new StringBuffer();
while(m.find()){

m.appendReplacement(sb, "$1max-width:100%; ");
}
m.appendTail(sb);
System.out.println(sb.toString());
}

}


安卓机器人 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

Java code




String str="direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord.&nbsp;</div> <div><img alt=\"\" style=\"width: 560px; height: 310px; src=\"/Upload/sys/……
[/Quote]

多谢了,不过这个只能适用于只有一个img标签的情况,假如有两个或者两个以上应该就不成立了,不过还是表示感谢,再等等,有没有更好的方法。谢谢。
tosshl 2012-05-19
  • 打赏
  • 举报
回复




String str="direct een antwoord! Of 'like'ons op Facebook en plaats uw vraag op ons Prikbord. </div> <div><img alt=\"\" style=\"width: 560px; height: 310px; src=\"/Upload/sys/twitter_facebook%20spreekuur.jpg\" /><br /> </div> <div data-font=\"lucida grande\" data-show-faces=\"false\" data-width=\"450\" data-send=\"true\" ";
Pattern p = Pattern.compile("(.*?<img.*?style=\")(.*?)(\".*)");
Matcher m =p.matcher(str);
String result=m.replaceAll("$1 max-wdth:100%; $2$3");
System.out.println(result);
sdojqy1122 2012-05-18
  • 打赏
  • 举报
回复
下面这段正则的意思是匹配
<img alt="" style="width:往中间插入max-width:100%;
str = str.replaceAll("(?s)(<Image[^>]*?style=\")(width:)","$1max-width:100%;$2");
试试看吧。
安卓机器人 2012-05-18
  • 打赏
  • 举报
回复
自己顶一个,首选从指定的字符串中获取所有的img标签,然后对每个img标签都添加max-width=100%;属性,并且替换源字符串中的img标签。

62,614

社区成员

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

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