,我想我找到了答案,每一個問題我有,但我想我反正發佈,因爲它可能是別人,更多的澄清可能有用有幫助。JavaScript就無法分割使用正則表達式
我試圖用正則表達式與前瞻與javascript函數分裂。出於某種原因,即使我在匹配時找到匹配項,它仍不會拆分字符串。我原本以爲我的正則表達式是使用lookahead的問題。下面是一個簡單的例子:
不起作用:
"aaaaBaaaa".split("(?=B).");
作品:
"aaaaBaaaa".match("(?=B).");
它出現的問題是,在分割例子中,傳遞的字符串沒有被解釋作爲正則表達式。使用正斜槓而不是引號似乎可以解決問題。
"aaaaBaaaa".split(/(?=B)./);
我證實了我的理論有以下傻傻的看着例如:
"aaaaaaaa(?=B).aaaaaaa".split("(?=B).");
沒有任何其他人都覺得奇怪的是,匹配函數假定你有一個正則表達式,而分割功能不?
我一直使用/正則表達式/(不含引號)語法的一切:比賽,拆分,更換。我沒有意識到你在某些情況下不需要。 – 2009-05-01 16:40:30
其實是有道理的,讓比賽()假設一個正則表達式(什麼*否則*會有,你可以匹配反對?)和分裂()承擔的字符串,因爲一個字符串分割可能比上一個正則表達式分裂速度更快。只有當你傳遞一個實際的正則表達式到split()時,它纔會執行較慢的正則表達式分割。 – Tomalak 2009-05-01 17:01:47