【已解决】Java正则替换replaceAll/replaceFirst遇到替换的内容包含正则符号报错

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1306)   2024-04-17 12:33:21
在Java的字符串替换中,最近遇到一个问题,就是替换的目标字符串中包含了正则表达式的符号,导致报错。

错误示例:
public class PatternTest {

    public static void main(String[] args) {
        String data="这个商品标价$2";
        data=data.replaceAll("(商品)","$3");
        System.out.println(data);
    }
}
执行结果:
执行错误

解决办法:
public class PatternTest {

    public static void main(String[] args) {
        String data="这个商品标价$2";
        data=data.replaceAll("(商品)", Matcher.quoteReplacement("$3"));
        System.out.println(data);
    }
}
执行结果:
       执行结果2

如果需要替换$等正则符号也可以这样
public class PatternTest {

    public static void main(String[] args) {
        String data="这个商品标价$2";
        data=data.replaceAll(Pattern.quote("$"), Matcher.quoteReplacement("¥"));
        System.out.println(data);
    }
}
执行结果:
执行结果3

搞定
地址:https://www.leftso.com/article/1122.html

相关阅读

在Java的字符串替换中,最近遇到一个问题,就是替换的目标字符串中包含了正则表达式的符号,导致报错。错误示例:public class PatternTest { public sta...
Java正则表达式appendReplacement和appendTail替换HTML标签属性值演示HTML数据<!DOCTYPE html&gtl; <html lang="en...
在js编程中,也会遇到替换字符串对象中某个字符。这时候就需要使用js内置函数replace了。可以替换一个也可以替换多个,支持正则表达式匹配比较灵活
hibernate validator 正则表达式报错HV000030: No validator could be found for constraint 'javax.validation...
正则语法参考表:​​​​​​​元字符描述\将下一个字符标记符、或一个向后引用、或一个八进制转义符
Java正则表达式多行(换行)匹配说明,默认情况下Java正则表达式匹配内容必须是一行得,如果匹配得内容区间存在换行就无法匹配,需要通过一个配置来搞定。Java正则表达式默认匹配内容中含多行示例...
正则表达式忽略大小写js中使用正则表达式来校验文件格式例如,匹配以下格式支持:doc,docx,xls,xlsx,ppt,pptx,pdf,jpg,jpeg,png,txt,wmv,mp4js语...
正则表达式验证邮箱也可以不填写内容,就是可选项邮箱验证得正则表达式为@Pattern(regexp = "^$|^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]...
java编程中正则表达式'并且'的写法,详细讲解在Java编程语言中正则表达式并且的写法以及Java语言与其他语言写正则有啥区别。
正则表达式匹配连续相同字符