我想獲取括號內的所有字符串。例如,應用正則表達式後如何使用正則表達式讀取括號內的所有字符串
"fun('xyz'); fun('abcd'); fun('abcd.ef') { temp('no'); "
輸出應該
['xyz','abcd', 'abcd.ef'].
我試過很多選項,但沒能得到期望的結果。 一個選項是
/fun\((.*?)\)/gi.exec("fun('xyz'); fun('abcd'); fun('abcd.ef')")
。
我想獲取括號內的所有字符串。例如,應用正則表達式後如何使用正則表達式讀取括號內的所有字符串
"fun('xyz'); fun('abcd'); fun('abcd.ef') { temp('no'); "
輸出應該
['xyz','abcd', 'abcd.ef'].
我試過很多選項,但沒能得到期望的結果。 一個選項是
/fun\((.*?)\)/gi.exec("fun('xyz'); fun('abcd'); fun('abcd.ef')")
。
商店正則表達式中的變量,並在循環中運行它...
var re = /fun\((.*?)\)/gi,
string = "fun('xyz'); fun('abcd'); fun('abcd.ef')",
matches = [],
match;
while(match = re.exec(string))
matches.push(match[1]);
請注意,這僅適用於全球正則表達式。如果您省略g
,則會產生無限循環。
另請注意,如果在引號之間存在)
,它會給出不希望的結果。
您可以使用此代碼幾乎做的工作:
"fun('xyz'); fun('abcd'); fun('abcd.ef')".match(/'.*?'/gi);
你會得到["'xyz'", "'abcd'", "'abcd.ef'"]
包含額外'
串繞。
找到你所需要的最簡單的方法就是使用這個正則表達式:/[\w.]+(?=')/g
var string = "fun('xyz'); fun('abcd'); fun('abcd.ef')";
string.match(/[\w.]+(?=')/g); // ['xyz','abcd', 'abcd.ef']
它將與字母數字字符和點工作,你將需要改變[\w.]+
添加更多的符號。
那麼,當你已經有了答案時,你爲什麼問這裏? http://www.rubular.com/r/rWMUMS8a36 – mellamokb 2012-07-30 20:58:40