Javascript-(。*)中的RegExp没有按预期运行

时间:2014-11-12 01:15:51

标签: javascript regex

我正在努力" scarpe"一个用来获取javascript数组的网页。

var paradas = [["name1", 12,....], ["namen", 24,..]];

这是源代码的页面http://pastebin.com/SZhtL404

同样的regExp工作在另一种语言中,比如PHP甚至是awk,但是我无法在javascript中使用它。

html = html.replace(/\n/g,'');  //I delete the \n -> it works

var re = /(var\s*paradas\s*=\s*)(\[(.*?)\];)/g;

var result = re.exec(html); -> it returns null.

reg表达式有什么问题?

2 个答案:

答案 0 :(得分:0)

而不是这个

var re = /(var\s*paradas\s*=\s*)(\[(.*?)\];)/g;

试试这个

var re = /(var\s*paradas\s*=\s*)(\[([^;]+)\];)/g;

现在

result[0] == 'var paradas = [["name1", 12,....], ["namen", 24,..]];'

result[1] == 'var paradas ='

result[2] == '[["name1", 12,....], ["namen", 24,..]];'

答案 1 :(得分:0)

好的,解决了。

我必须删除\ r才能使其正常工作(在控制台中查看结果我意识到了\ r \ n)。

最终代码是:

html = html.replace(/(\n|\r)/g,'');             
var re = /(var\s*paradas\s*=\s*\[([^;]+)\]);/;

现在res [0]符合我的预期。感谢serg和esquew的帮助。

它也适用于此:var re = /(var\s*paradas\s*=\s*\[(.*?)\]);/;