JavaScript 正则表达式 - 尝试匹配 (5', 78', 80')(90'+2') 中的所有数字 前面没有 +
JavaScript Regex - trying to match all numbers in (5', 78', 80')(90'+2') Not preceded by +
我有一些足球进球信息是这样表示的:
(5', 78', 80')(90'+2')
我想使用 javascript 来匹配所有数字 而不是 前面有 +
符号(在本例中为 2)。我不知道如何在没有负面回顾的情况下做到这一点。
我试过这个:
"(5', 78', 80')(90'+2')".match(/[^+]\d+'/g)
但我在返回的匹配项中得到括号、空格和 '
:
["(5'", " 78'", " 80'", "(90'"]
我正在寻找类似的结果。注意它里面没有数字 2
,因为 2 前面有一个 +
["5", "78", "80", "90"]
不胜感激。
您可以在结果中使用捕获的组作为您想要的值:
var regexp = /(?:\+\d+|(\d+))'/g;
var str = "(5', 78', 80')(90'+2')";
var m;
var result = [];
while ((m = regexp.exec(str))) {
if (m[1] !== undefined)
result.push(m[1]);
}
console.log(result);
//=> ["5", "78", "80", "90"]
你可以使用这个模式
(?:[^+]|^)(\d+(\.\d+)?)
我有一些足球进球信息是这样表示的:
(5', 78', 80')(90'+2')
我想使用 javascript 来匹配所有数字 而不是 前面有 +
符号(在本例中为 2)。我不知道如何在没有负面回顾的情况下做到这一点。
我试过这个:
"(5', 78', 80')(90'+2')".match(/[^+]\d+'/g)
但我在返回的匹配项中得到括号、空格和 '
:
["(5'", " 78'", " 80'", "(90'"]
我正在寻找类似的结果。注意它里面没有数字 2
,因为 2 前面有一个 +
["5", "78", "80", "90"]
不胜感激。
您可以在结果中使用捕获的组作为您想要的值:
var regexp = /(?:\+\d+|(\d+))'/g;
var str = "(5', 78', 80')(90'+2')";
var m;
var result = [];
while ((m = regexp.exec(str))) {
if (m[1] !== undefined)
result.push(m[1]);
}
console.log(result);
//=> ["5", "78", "80", "90"]
你可以使用这个模式
(?:[^+]|^)(\d+(\.\d+)?)