ruby中的递归正则表达式

时间:2013-05-13 20:33:08

标签: javascript ruby regex

我有一个脚本可以向服务器打开请求并获取javascript输出。

此输出如下所示:

  

html = new Array(); mark = new Array(); html.push('html tags(我想要的东西)更多html'); mark.push(new Obj(-12.1231231,-12.12312312312)); html .push('html标签(我想要的东西)更多html'); mark.push(新的Obj(-12.1231231,-12.12312312312)); html.push('html标签(我想要的东西)更多html');标记。 push(new Obj(-12.1231231,-12.12312312312)); html.push('html tags(我想要的东西)更多html'); mark.push(new Obj(-12.1231231,-12.12312312312)); html.push(' html标签(我想要的东西)更多html'); mark.push(new Obj(-12.1231231,-12.12312312312)); OtherStuf.idontcare(new Object(-16.630495852614,-49.264667191591),13);

我想创建一个正则表达式来接收所有内容:(something i want)new Obj(-12.1231231, -12.12312312312)上的数字,所以在这一部分:

  

html.push('html tags(我想要的东西)更多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

1 个答案:

答案 0 :(得分:0)

单个正则表达式无法处理您想要的内容。

我建议你先拆分成块,然后在每个块上运行一个正则表达式:

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