正则表达式停止不工作

问题描述:

我有以下字符串:正则表达式停止不工作

'"var1":"val1","var2":"val2","var3":"val3"' 

我想通过正则表达式来提取VAL2

/var2":"(.*)"/g 

得到VAR2之后一切 “:”

/var2":"(?=[^"])"/g 

没有得到任何匹配

+0

您使用哪种语言/编辑器?对正则表达式的影响。 –

你的se COND正则表达式是不正确的,应该是

/var2":"([^"]*)"/g 

说明:

(?=[^"])"表示:“首先要确保下一个字符是什么,但一个"。然后匹配"。这显然是一个)不可能和b)你想不是:)

与此相反的是,([^"]*)表示:“匹配任意数量(包括零)不在"的人物,那么捕获子匹配组1 “。

我觉得你快到了。您需要用一个简单的组来替换lookahead。此外,需要的字符类后添加*

var2":"([^"]*)" 

这将匹配整个"var2":"..."和第一组将包含val1

我添加了一些可选空间结肠周围(demo):

var2" *: *"([^"]*)" 

虽然有一个警告:在var2的值不能包含引号。

javascript javascript?请尝试:/var2":"(.*?)"/g或/ var2“:”(?:[^“] +?)”/ g