将字符串与正则表达式匹配

时间:2012-11-09 11:12:54

标签: regex expression

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

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

我想要的是删除键“specialKey”及其值和“subtitle”及其值。它们都可以为空(就像我的例子中的specialKey)。

我尝试过类似的东西:

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

JSON is not a regular language所以正则表达式不是这种操作的最佳工具。您最好使用JSON解析器来实现目标。

答案 1 :(得分:1)

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

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

它应该有用。