删除尾随逗号期间正则表达式模式中的 Java 语法错误

标签 java android regex whitespace

我有这样的字符串:

{"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/

相关文章:

java - 使用spring分离测试和数据有什么缺点吗?

java - android 写入磁盘不可靠 - 写入 file.length !=expected.length

android - 免安装应用 zip 上传错误

php - 正则表达式匹配不在分组符号之间的逗号

regex - Delphi - 用户指定的字符串操作

javascript - 允许退格的javascript中的正则表达式

java - org.hibernate.HibernateException : Unable to instantiate default tuplizer [org. hibernate.tuple.entity.PojoEntityTuplizer]

java - 24/7 全天候运行 Java 服务器应用程序以及所有那些著名的在线实时应用程序背后的 secret

android - 如何为 DialogPreference 子类正确实现 onRestoreInstanceState()?

java - Docker:由于未找到 JAXB-API,Jenkins-jdk11 无法连接到 Nexus