2016-02-07 44 views
0

我試圖用正則表達式匹配部分代碼。我如何匹配var,a,=,2和; from匹配部分代碼

"var a = 2;" 

+1

什麼是你正在試圖解決這個問題,因爲這似乎令人難以置信的投機性(尤其是*似乎你*不要給出確定你想問什麼)?請參閱元問題:「[什麼是XY問題?](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)」 –

+1

你嘗試了什麼? '\ S +' – Enissay

+0

你想匹配這個'var a = 2;'?它是腳本還是字符串的一部分? – kanudo

回答

1

我相信你想這個正則表達式:/\S+/g

進行分解:\S選擇所有非空白字符,+確保你它一起選擇多個非空白字符(即'var'), 和'g'標誌確保它選擇全部的出現次數該字符串,而不是停在第一個默認行爲。

這是一個有用的鏈接,玩耍,直到你找到正確的正則表達式:https://regex101.com/#javascript

+0

關閉。再看一遍,它匹配2和;一起。 –

+0

這將有助於準確理解你想在這裏實現的內容,但如果你想要的是單獨匹配每個部分,那麼這將做到:'/(\ w + | [=;])/ g'。如果您還想識別其他單獨的操作員,可以將它們添加到括號內。 – pedrotp

+0

這個工作? ^^^ – pedrotp

0
var str = "var a = 2;"; 

// clean the duplicate whitespaces 
var no_duplicate_whitespace = str.replace(new RegExp("\\s+", "g"), " "); 

// and split by space 
var tokens = no_duplicate_whitespace.split(" "); 

或者作爲@kuujinbo指出:

str.split(/\s+/); 
+0

'str.split(/ \ s + /);' – kuujinbo