使用正则表达式选择不相等的键和值

有一个这样的字符串:

"let key1=value1; let key2=value2;"

我想使用正则表达式选择键和值作为组,我尝试使用环顾四周。

/(\w+)(?=\=)(\w+);/g

但它对我不起作用,有什么建议吗?


蝴蝶刀刀
浏览 120回答 3
3回答

森林海

表达式部分是一个前瞻,一个零宽度的(?=\=)断言,它不消耗文本,但要求它出现在右边。当你说(?=\=)(\w+)你想要\w+模式开始匹配时=。由于\w不匹配=,您的正则表达式总是失败。利用/(\w+)=(\w+);/gJavaScript(借自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

以下正则表达式应该可以解决问题:(let (\w+) ?= ?(\w+);?)+. 每个let语句都将是一个匹配项,其中键是组 2,值是组 3。

达令说

更具体地说,我们可以使用(\w+) ?= ?(\w+);?+
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript