JAVA replace和relaceAll的问题
来源:互联网 发布:数学问题搜索软件 编辑:程序博客网 时间:2024/06/05 03:29
题外话: 本人没啥写博客的习惯,不过这对于一个搞技术的人来说,不是件好事情,从这一篇开始,我会强迫自己开始写博客,把遇到的问题,或是一些关于技术的想法记录下来。
现在进入正题:
大家都知道 Java String类下的方法:replace是进行字符替换,而replaceAll是进行正则替换的。
在目前我所做的项目:代码扫描系统中,会大量用到正则和字符替换,主要是用来还原代码工程中 配置项的引用。
今天遇到这么个问题:
有个 项目组的代码在扫描xml文件的时候抛出了 java.lang.IllegalArgumentException: Illegal group reference 这个异常,很明显是在进行正则分组查找时,遇到了非法的分组。
根据异常查找到代码片段,发现 这里用到了 String.replaceAll函数,用以将xml中引用的${xx}形式的变量替换为它的真实值。
为什么其他项目的代码不会出现错误,唯独这个项目组的代码会出错呢?通过debug跟踪,发现,出现错误时,replaceAll的第二个参数,也就是需要被替换的值中包含了 xxx_$12这样的字符,原来如此:
replaceAll进行的是正则替换,而正则替换的 替换值中有个保留字符 '$',这个字符后加数字 标识正则表达式匹配到的分组编号,而我们的替换字符为 ${xxx},只有0号分组,载体换的时候 xxx_$12会去查找正则的12号分组,没有找到,自然就报错了。
0 0
- JAVA replace和relaceAll的问题
- js 实现relaceAll的方法
- java中replace 和replaceAll使用遇到的问题:
- java的replace和replaceAll
- String和StringBuffer的replace问题
- java:replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java中replace和replaceAll的区别
- java replace()和replaceAll()的区别
- java中replace和replaceAll的区别
- JAVA中replace和replaceAll的区别
- JAVA中REPLACE和REPLACEALL的区别
- CentOS下安装Xdebug,php环境使用Xampp
- 原码, 反码, 补码 详解
- description
- 优盘隐藏分区删除
- 斐波那契数列与阶乘---递归实现
- JAVA replace和relaceAll的问题
- iOS8打开通过代码打开设置界面
- 一个系统多个tomcat
- ios开发-Object-C可变参数函数
- 我要努力成为装机小王子
- eCognition Essentials 1.1版本的简单介绍
- mac机上python操作mysql数据库
- PorterDuff.Mode的16种模式示意图
- 拉链表设计