有人可以帮我弄清楚我的模式有什么问题吗?
这是我的文字: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);
答案 0 :(得分:1)
看起来您缺少任何捕获组。在RegEx中,这些是()
之间的组。如果你像这样重写它:
x=\'([0-9]+\.[0-9]+)\' y=\'([0-9]+\.[0-9]+)\'
然后你得到匹配1的x
和y
并匹配[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]);
}