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

编程教程 > Java (1638) 2025-04-17 11:34:43

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="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参数

将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
 

登录后查阅

此处内容需登录后查阅(刷新)

登录/注册



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

替换target属性


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

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java正则表达式appendReplacement和appendTail替换HTML标签属性值演示HTML数据&lt;!DOCTYPE html&gtl; &lt;html lang="en...
Java正则表达式基础使用及常见正则符号说明,Java正则使用基础参考代码:package org.xqlee.utils.regular;import jav
Java正则表达式多行(换行)匹配说明,默认情况下Java正则表达式匹配内容必须是一行得,如果匹配得内容区间存在换行就无法匹配,需要通过一个配置来搞定。Java正则表达式默认匹配内容中含多行示例...
java编程中正则表达式'并且'的写法,详细讲解在Java编程语言中正则表达式并且的写法以及Java语言与其他语言写正则有啥区别。
在Java的字符串替换中,最近遇到一个问题,就是替换的目标字符串中包含了正则表达式的符号,导致报错。错误示例:public class PatternTest { public sta...
正则表达式验证邮箱也可以不填写内容,就是可选项邮箱验证得正则表达式为@Pattern(regexp = "^$|^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]...
正则表达式忽略大小写js中使用正则表达式来校验文件格式例如,匹配以下格式支持:doc,docx,xls,xlsx,ppt,pptx,pdf,jpg,jpeg,p
hibernate validator 正则表达式报错HV000030: No validator could be found for constraint 'javax.validation...
问题描述在使用正则表达式匹配空格字符得时候发现总是匹配失败,后面仔细研究发现空格中包含中文得空格,导致\s无法匹配
1. ([0-9])\1{5} 或 ([\d])\1{5} 连续相同的6位数字 如:333333([0-9a-zA-Z])\1{5} 连续相同的6位数字或字母
String regex="\\[us\\](?s)((?!\\[/us\\]).)*\\[/us\\]";匹配: [us][/us]之间的所有内容解释:(?s)  匹配忽略\r \n等换行符阻...
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
java WEB中Cookie的操作和使用,java,cookie,web
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
在这篇快速文章中,我们将介绍使用标准框架 - JSR 380(也称为Bean Validation 2.0)来验证Java bean的基础知识。当然,在大多数应用程序中验证用户输入是超常见的需求...