javareplaceAll之$替换replaceall()
最近,在开发⼀个伪代码翻译⼯具的过程中,遇到个问题,我们在伪代码中使⽤spring EL的规则,将⾮变量限定在${"1"}中,解析后根据上下⽂的类型转换为相应的java类型。在规则上,我们原先要求op1 op op2之间必须有空格,但是后来发现,有些地⽅仍然存在着操作符和操作数之间没有空格的情况,为了尽可能多的兼容,我们选择根据上下⽂进⾏判断,适当的预处理以便后续解析不会出错,于是需要进⾏类似下列处理:
但是执⾏的时候报
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference: group index is missing
at Matcher.appendReplacement(Unknown Source)
at placeAll(Unknown Source)
at java.placeAll(Unknown Source)
经反复检查,replaceAll的第⼆个参数中也需要转义,如下:
但是,javadoc并没有提到这⼀点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论