2013-05-13 58 views
1

我有一個腳本,它向服務器打開一個請求並獲得一個javascript輸出。Ruby中的遞歸正則表達式

這個輸出是這樣的:

HTML =新的Array();馬克=新的Array(); html.push( 'html標籤(這是我想要的)多個HTML'); mark.push (new Obj(-12.1231231,-12.12312312312)); html.push('html tags(something i want)more html'); mark.push(new Obj(-12.1231231,-12.12312312312)); html.push('html標籤(我想要的東西)more html'); mark.push(新的Obj(-12.1231231,-12.12312312312)); html.push('html標籤(我想要的東西)更多html'); mark.push(new Obj (新的對象(-12.1231231,-12.12312312312)); OtherStuf.idontcare(新對象(-16.630495852614,-12.12312312312) -49.264667191591),13);

我想創建一個正則表達式採取一切:(something i want)new Obj(-12.1231231, -12.12312312312)的數字,所以在這一部分:

html.push('html標籤(這是我想要的)多個HTML 「); mark.push(新的OBJ(-12.1231231,-12.12312312312))

我只想得到:

(something i want) 
-12.1231231 
-12.12312312312 

但是,這爲我找到這個每個地方。

我創造了這個正則表達式來把所有的內容物

/^html = new Array\(\);mark = new Array\(\);(.*)OtherStuf.idontcare\(new Object\([\+\-\.0-9]*, [\+\-\.0-9]*\), [\d]*\);$/ 

但現在我還挺堅持。我無法看到我需要的信息的任何方式。

我該怎麼做?

要點與我的正則表達式和JavaScript我需要解析的一個例子:https://gist.github.com/NicosKaralis/5571240

+0

你想寫一個正則表達式,可以解析HTML標記?如果是的話那麼這是不可能的。 – akonsu 2013-05-13 21:07:14

+0

這似乎是重新編寫一個混亂的JavaScript片段的東西。 – tadman 2013-05-13 21:15:07

+0

我不想解析html標記,我想分析這個js,它包含一些html標記,但只有它的一些要點 – 2013-05-14 03:09:57

回答

0

一個正則表達式不能處理要你想要的。

我建議您先分割成塊,然後運行對他們每個人的正則表達式:

output.split(/html\.push/).each do |block| 
    # grab "something i want" and the numbers in block 
end