蝴蝶刀刀
2022-10-21 15:33:50
有一個這樣的字符串:"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
提交
取消