Java正则表达式appendReplacement和appendTail替换HTML标签属性值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则测试HTML</title>
</head>
<body>
<h1>正则测试HTML</h1>
<a href="blog.xqlee.com?p=3356" target="_self"></a>
<a href="blog.xqlee.com?w=9989"></a>
<a href="blog.xqlee.com?p=9989"></a>
</body>
</html>
将a标签里面url包含p参数的参数名p改为q
/**
* 需求:
* 将a标签里面url包含p参数的参数名p改为q
*/
public static void t1(){
//打印原始内容
// printOriginal();
String regex="(?s)<a\\s+href\\s*=\\s*\"[^\\?]*\\?p=[^\"]*\"\\s*[^>]*>";
System.out.println("regex:"+regex);
Pattern pattern=Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
StringBuffer chapterContentLine = new StringBuffer();
while (matcher.find()){
String group = matcher.group();
group=group.replaceFirst("\\?p=","?q=");
matcher.appendReplacement(chapterContentLine,group);
}
matcher.appendTail(chapterContentLine);
System.out.println(chapterContentLine.toString());
}
执行输出结果:
可以看到,输出结果,已经将p参数修改为q
a标签target属性设置为_blank
执行上面的代码,输出结果为:
从上面可以看到满足条件的a标签target属性值已经设置为_blank
http://blog.xqlee.com/article/1046.html