0

我在创建正则表达式时遇到问题。我有一个这样的字符串(来自网络服务器的简单 json 响应):

{
    "key1":valueInt1,
    "key2":valueInt2,
    [...]
    "specialKey":"",
    "subtitle":"Every kind of character, like char, num or punct",
    "key3":"Useful line",
}

我想要的是删除键“specialKey”及其值和“副标题”及其值。它们都可以为空(例如我的示例中的 specialKey)。

我尝试过这样的事情:

(\"subtitle\"\:\")([:punct:]*[:space:]*[:word:]*)*(\",)

没有成功。错误是匹配我的随机句子的部分 ([:punct:] [:space:] [:word:] ) 。

谢谢你的帮助!

4

2 回答 2

3

JSON不是正则语言,因此正则表达式不是这种操作的最佳工具。您最好使用 JSON 解析器来实现您的目标。

于 2012-11-09T11:35:37.210 回答
1

字符类通常只在括号表达式中使用。如果你改变你所拥有的:

(\"subtitle\"\:\")([[:punct:][:space:][:word:]]*)*(\",)

它应该工作。

于 2012-11-09T11:31:47.963 回答