我寫一個正則表達式把字符串字符串轉換爲以參數
"fetchSomething('param1','param2','param3')"
到正確的函數調用掙扎作用。我可以通過一些拆分和子字符串來實現,但寧願用.match
爲了效率(和我自己的教育)而使用捕獲組。
然而,當我使用
'something("stuff","moreStuff","yetMoreStuff")'.match(/(?:\(|,)("?\w+"?)/g)
我得到
["("stuff"", ","moreStuff"", ","yetMoreStuff""]
不管?:
的哪個是同樣的結果,這混淆了我,因爲我覺得?:
會導致它忽略第一個捕獲組?還是我完全錯過了解捕獲小組?
我建議你使用一個實際的JS句法分析器,如http: //esprima.org/。或者,根據輸入的來源和整體環境,「eval」呢? –
FWIW,如果使用'.match'和'g'修飾符,則數組只返回整個匹配項,而不是捕獲組。你可能想看看['.exec'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec) –
我受限於我們已經有不幸的圖書館。我們使用extJS。我也將此視爲理解正則表達式的練習。 – Blue