我有正则表达式
(\w+)\s*:((?:\w+[-+*%])*?\w+)$
匹配键值对,如下所示 -
键:值
KEY2:VALUE2
但正确的匹配 失败如果键和值在这些引号内 -
"键":值
" KEY2":"值2"
可以进行哪些修改以使正则表达式匹配键和引号内的值?
答案 0 :(得分:2)
您可以在key-value
对的任意一侧使用可选引号,如下所示:
/("?)\b(\w+)\1\s*:\s*("?)((?:\w+[-+*%])*?\w+)\b\3/g
记下捕获空字符串或双引号的组("?)
。另一方面,我们使用该组的反向引用\1
来结束引用。