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
一个正则表达式不能处理要你想要的。
我建议您先分割成块,然后运行对他们每个人的正则表达式:
output.split(/html\.push/).each do |block|
# grab "something i want" and the numbers in block
end
你想写一个正则表达式,可以解析HTML标记?如果是的话那么这是不可能的。 – akonsu 2013-05-13 21:07:14
这似乎是重新编写一个混乱的JavaScript片段的东西。 – tadman 2013-05-13 21:15:07
我不想解析html标记,我想分析这个js,它包含一些html标记,但只有它的一些要点 – 2013-05-14 03:09:57