0

我是正则表达式的新手,并且已经要求编写一些复杂的表达式(好吧,它们可能很简单,但对我来说它们不是:))。
我尝试了很多变化,但从未成功。我要写的表达式是:
1. {"d":{"results":SOME_JSON_OBJECT}}
2. {"d":{"results":{"JSON_KEY_AS_STRING":SOME_JSON_ARRAY/OBJECT}}}
3. {"d":{"results":[SOME_JSON_OBJECTS]}}
4. {"d":SOME_JSON_ARRAY/OBJECT_OR_AN_PRIMITIVE}

注意,ANY_VALUE 可以是任何东西。唯一重要的是所有不是 ANY_VALUE 的字符,包括所有“特殊”字符,例如“、{、}、[、]、: 等......

有人可以帮忙吗?提前致谢!

4

1 回答 1

1

Java 正则表达式风格不支持正则表达式中的递归模式(PCRE 和 .NET 具有允许递归模式的扩展)。

因此,您不能让正则表达式正确解析对象,因为它们可以具有任意深度。你需要的是一个 JSON 解析器,如果你想自己写,我建议你看看 ANTLR 或 GOLD 等解析器工具,它们可以帮助你完成这个过程(你为解析编写一个语法,然后工具为您创建实际的解析代码)。

是我前段时间为 GOLD 编写的 JSON 语法。

于 2013-02-28T18:37:30.767 回答