关键值对

时间:2016-10-22 05:15:14

标签: javascript regex key-value

我有正则表达式

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

匹配键值对,如下所示 -

  

键:值

     

KEY2:VALUE2

但正确的匹配 失败如果键和值在这些引号内 -

  

"键":值

     

" KEY2":"值2"

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

1 个答案:

答案 0 :(得分:2)

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

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

RegEx Demo

记下捕获空字符串或双引号的组("?)。另一方面,我们使用该组的反向引用\1来结束引用。