2015-10-19 45 views
0

我正在使用在Google地圖上繪製呈現標記的網頁。我使用NReco.PhantomJS獲取網頁的源代碼,包括通過Ajax加載的數據。我現在所有的網頁源碼都存儲在一個字符串對象中。現在我想從整個源代碼中提取的部分是一個JavaScript數組聲明和初始化。它看起來像這樣,提取Javascript數組

var customM = [41400, 610420, 313270, 312216, 51516]; 

現在我知道我可以使用startIndex和endIndex的,並得到,我想作爲一個子字符串的一部分,但已經有頁面上的其他類似的線,被註釋掉而是提取我的實際所需的行,

// var customM = [43100, 310220, 311240]; 

是否有任何其他方式來提取我想要的?一些圖書館或正則表達式?

+0

是的,你可以使用正則表達式來檢查,以確保'var'是在沒有註釋行的開始,像'^ var customM ...'。 –

+0

@JamesThorpe:當然,這可能會被領先的空格或阻止評論或... –

+0

@TJCrowder確實 - 但它仍然會匹配OP現在所擁有的並且比子字符串方法更好(這大概是匹配它找到的第一個實例)。 –

回答

2

使用這樣的正則表達式:

(?:^|\n)\s*var customM = \[.* 

Regex live here.

+0

非常感謝。它完全是我想要的。如果沒有這個幫助,我會花幾個小時弄清楚這一點。 –

+1

很高興幫助:) – 2015-10-19 11:37:42