Java正则表达式appendReplacement和appendTail替换HTML标签属性值

Java正则表达式appendReplacement和appendTail替换HTML标签属性值

Java正则表达式appendReplacement和appendTail替换HTML标签属性值

演示HTML数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则测试HTML</title>
</head>
<body>
    <h1>正则测试HTML</h1>
    <a href="www.note234.com?p=3356" target="_self"></a>
    <a href="www.note234.com?w=9989"></a>
    <a href="www.note234.com?p=9989"></a>
</body>
</html>

正则替换a标签的url参数

将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属性值

a标签target属性设置为_blank

登录后查阅

此处内容已经隐藏,需要登录后刷新查阅

登录/注册

执行上面的代码,输出结果为:

从上面可以看到满足条件的a标签target属性值已经设置为_blank

 

Java正则表达式appendReplacement和appendTail替换HTML标签属性值

相关文章:

你感兴趣的文章:

标签云: