我有这样的字符串:
{"ssid":"TEST", "key_mgmt":"NONE", "priority":"102",}
我正在尝试删除最后一个属性后的最后一个逗号。
,}
使用:
.replaceAll("(,[[:space:]]*})", "}")
但它抛出以下错误:
Syntax error in regexp pattern near index 15:
(,[[:space:]]*})
请问如何解决?
注意:Android SDK中使用的是Java吗
最佳答案
这里的技巧是使用前瞻性 ?=
来搜索 ,当找到时,您现在可以匹配逗号
,
在它之前,用空字符串替换逗号 ""
Java 中的示例
public static void main(String[] args) {
String l="{\"ssid\":\"TEST\", \"key_mgmt\":\"NONE\", \"priority\":\"102\",}";
String m=",(?=})";
Pattern pat = Pattern.compile(m);
Matcher matcher = pat.matcher(l);
System.out.println(matcher.replaceAll(""));
}
输出
{"ssid":"TEST", "key_mgmt":"NONE", "priority":"102"}
关于删除尾随逗号期间正则表达式模式中的 Java 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32824162/