51,397
社区成员




String str = "<p><img alt=\"sdfasdf\" src=\"http://www.yb-test.com/upload/2014-06-20/333/images/1403662550878.jpg\" style=\"height:189px; width:304px\" /></p>\r<p><img alt=\"\" src=\"http://www.yb-test.com/upload/2014-06-20/333/images/1403662550878.jpg\" style=\"height:189px; width:304px\" /></p>\r<p>大似的发的说法</p>\r<p><img src=\"http://www.yb-test.com/upload/2014-06-20/333/images/1403771804592.jpg\" style=\"height:408px; width:750px\" /></p>\r<p>大都市发生的发生的发生的泛</p>\r<p><img src=\"http://www.yb-test.com/upload/2014-06-20/333/images/1407738076985.jpg\" alt=\"fasdf\" style=\"height:321px; width:750px\" /></p>";
Matcher m=Pattern.compile("\\s+alt=\"(.*?)\"\\s+").matcher(str);
int i=1;
while(m.find()){
str=str.replace("alt=\""+m.group(1)+"\"", "alt=\"标题-"+i+"\"");
i++;
}
System.out.println(str);
//测试数据a 预想值=获取值
String a = "<p><img alt=\"dfad-2sf-\" src=\"http://.jpg\" style=\"width:304px\" /></p> ";
System.out.println("预想值a:<p><img OK src=\"http://.jpg\" style=\"width:304px\" /></p>"+
"\r获取值a:"+a.replaceAll("alt=\".*?\"", "OK"));
//测试数据b 预想值!=获取值 此正则与上一个相比,感觉"?"不起作用了,居然把src属性也给替换了,这是不解之一
String b = "<p><img alt=\"dfad-2sf-2\" src=\"http://.jpg\" style=\"width:304px\" /></p>";
System.out.println("预想值b:<p><img OK src=\"http://.jpg\" style=\"width:304px\" /></p>"+
"\r获取值b:"+b.replaceAll("alt=\".*-2?\"", "OK"));
//测试数据c 预想值!=获取值 此正则不知道如何排除掉第一个img,而只替换掉第二个img里的alt属性,这是不解之二
String c = "<p><img alt=\"标题-2\" src=\"http://.jpg\" style=\"width:304px\" /></p>\r<p><img alt=\"fasdfafd\" src=\".jpg\" style=\"width:304px\" /></p>";
System.out.println("预想值c:<p><img alt=\"标题-2\" src=\"http://.jpg\" style=\"width:304px\" /></p>\r<p><img OK src=\".jpg\" style=\"width:304px\" /></p>"+
"\r获取值c:"+c.replaceFirst("alt=\"\\w+.*?\"", "OK"));
1.不解之一