Ruby中的递归正则表达式

问题描述:

我有一个脚本,它向服务器打开一个请求并获得一个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

一个正则表达式不能处理要你想要的。

我建议您先分割成块,然后运行对他们每个人的正则表达式:

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