【发布时间】:2019-10-13 18:06:16
【问题描述】:
我想编写一个正则表达式来提取某些JSON 字符串的特定键和值。
这是JSON 字符串:
{"key1": "value1", "key2": "value2"}//there are more key-values
这是我想出的正则表达式:
^{\s*("([^\"]+)"\s*:\s*"([^\"]+)",?)+\s*}$
问题是上面提到的正则表达式只支持第一组key-value:
{"key1": "value1"}
或
{"key1": "value1", }
"value" 和 "key" 前后有尾随空格,但正如我所提到的,它不适用于多个这样的键值对:
{"key1": "value1", "key2": "value2"}
我已添加 ^{\s*("([^\"]+)"\s*:\s*"([^\"]+)",?)+\s*} $ 使正则表达式支持 json 中 "key": "value" 模式的重复。
但它不起作用。我该如何解决这个问题?
【问题讨论】:
-
为什么不
JSON.parse? -
我正在使用 cpp,由于某些原因我不想添加任何外部库
标签: regex