正则表达式停止不工作
问题描述:
我有以下字符串:正则表达式停止不工作
'"var1":"val1","var2":"val2","var3":"val3"'
我想通过正则表达式来提取VAL2
/var2":"(.*)"/g
得到VAR2之后一切 “:”
/var2":"(?=[^"])"/g
没有得到任何匹配
答
你的se COND正则表达式是不正确的,应该是
/var2":"([^"]*)"/g
说明:
(?=[^"])"
表示:“首先要确保下一个字符是什么,但一个"
。然后匹配"
。这显然是一个)不可能和b)你想不是:)
与此相反的是,([^"]*)
表示:“匹配任意数量(包括零)不在"
的人物,那么捕获子匹配组1 “。
答
我觉得你快到了。您需要用一个简单的组来替换lookahead。此外,需要的字符类后添加*
:
var2":"([^"]*)"
这将匹配整个"var2":"..."
和第一组将包含val1
。
我添加了一些可选空间结肠周围(demo):
var2" *: *"([^"]*)"
虽然有一个警告:在var2
的值不能包含引号。
答
javascript javascript?请尝试:/var2":"(.*?)"/g或/ var2“:”(?:[^“] +?)”/ g
您使用哪种语言/编辑器?对正则表达式的影响。 –