Javascript正则表达式模式

时间:2014-08-17 09:03:01

标签: javascript regex

有人可以帮我弄清楚我的模式有什么问题吗?

这是我的文字:sid ='206'x = '34 .8395'y = '32 .1178'>×2(206)

var regex = new RegExp("/x=\'[0-9]+\.[0-9]+\' y=\'[0-9]+\.[0-9]+\'/");

var match;
do {
    match = regex.exec(text);
    if (match) {
        console.log(match[1], match[2], match[3], match[4]);
    }
} while (match);

2 个答案:

答案 0 :(得分:1)

看起来您缺少任何捕获组。在RegEx中,这些是()之间的组。如果你像这样重写它:

x=\'([0-9]+\.[0-9]+)\' y=\'([0-9]+\.[0-9]+)\'

然后你得到匹配1xy并匹配[2]

这是demo

答案 1 :(得分:1)

RegExp构造函数中没有分隔符。

您可以使用此正则表达式:

var re = /x='(\d+\.\d+)' +y='(\d+\.\d+)'/g; 
var str = "sid=\'206' x='34.8395' y='32.1178'>×2 (206)";

while ((m = re.exec(str)) != null) {
   console.log(match[1], match[2]);
}

RegEx Demo