有一个这样的字符串:"let key1=value1; let key2=value2;"我想使用正则表达式选择键和值作为组,我尝试使用环顾四周。/(\w+)(?=\=)(\w+);/g但它对我不起作用,有什么建议吗?
3 回答

森林海
TA贡献2011条经验 获得超2个赞
表达式部分是一个前瞻,一个零宽度的(?=\=)
断言,它不消耗文本,但要求它出现在右边。当你说(?=\=)(\w+)
你想要\w+
模式开始匹配时=
。由于\w
不匹配=
,您的正则表达式总是失败。
利用
/(\w+)=(\w+);/g
JavaScript(借自How do you access the matching groups in a JavaScript regular expression?):
var myString = "let key1=value1; let key2=value2;";
var myRegexp = /(\w+)=(\w+);/g;
match = myRegexp.exec(myString);
while (match != null) {
console.log(match[1] + "," + match[2]);
match = myRegexp.exec(myString);
}

慕码人8056858
TA贡献1803条经验 获得超6个赞
以下正则表达式应该可以解决问题:(let (\w+) ?= ?(\w+);?)+
. 每个let
语句都将是一个匹配项,其中键是组 2,值是组 3。
添加回答
举报
0/150
提交
取消