java.util.regex.PatternSyntaxException: Illegal repetition {
2024-01-03 15:42:34
问题描述
使用 replaceAll 替换字符串时,报如下错误:
java.util.regex.PatternSyntaxException: Illegal repetition
{"
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.closure(Pattern.java:3104)
at java.util.regex.Pattern.sequence(Pattern.java:2101)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)12345678910
代码为:
String s = allData.replaceAll("{\"","{'");1
问题原因
参数传递问题,replaceAll(String regex, String replacement) 方法的第一个参数为正则表达式,而 “{ ” 是正则表达式中的特殊字符,要匹配 {,需要转义后使用,replaceAll 方法源码如下:
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}123
解决方法
对“{ ”转义即可:
String s = allData.replaceAll("\\{\"","{'")1
文章来源:https://blog.csdn.net/qq_43985303/article/details/135362359
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!