Java - 从JsonObject中删除与regex匹配的键

时间:2017-12-07 19:24:09

标签: java json regex

我可以使用:

从JsonObject中删除密钥
String prop = "test";
JsonObject o = parser.parse(props).getAsJsonObject();
o.remove(prop);

我需要从JsonObject中删除与特定模式匹配的所有键,就像以“test。*”开头的任何键一样。而不是迭代键并找到匹配,有没有其他方法来删除匹配给定模式的键?

input: {"test":"0","test_1": "1","test_10":"10", "site":"abc.com"}
expected output: {"site":"abc.com"}

谢谢!

1 个答案:

答案 0 :(得分:0)

没有。

您可以做的最好的事情是在循环之前编译正则表达式以提高性能:

Pattern pattern = Pattern.compile(prop);
Iterator<Entry<...>> it = o.entrySet().iterator();
while (it.hasNext()) {
    Entry<...> entry = it.next();
    if (pattern.matcher(entry.getKey()).matches()) {
        i.remove();
    }
}