键值对的正则表达式

Regex for key value pair

我有一个正则表达式

(\w+)\s*:((?:\w+[-+*%])*?\w+)$

匹配键值对,像这样 -

key:value

key2:value2

但是正则表达式 匹配 失败 如果键和值在像这样的引号内 -

"key":value

"key2":"value2"

可以进行哪些修改以使正则表达式也匹配引号内的键和值?

您可以在 key-value 对的任一侧使用可选引号,如下所示:

/("?)\b(\w+)\s*:\s*("?)((?:\w+[-+*%])*?\w+)\b/g

RegEx Demo

记下捕获空字符串或双引号的组 ("?)。另一方面,我们使用该组的反向引用 作为收盘价。