可以在这里使用一些帮助。由于我必须通过的特殊字符,我已经挖掘并找不到字符串。
试图捕获任何数字,其中“258”是以下字符串:“。value”,258,“0”)“
以下是我正在寻找的,因为我想要捕获的字符串可以是多位数长,只有数字0-9。
(?<=value\), )(.*)(?=\,)
任何替代方案都会有所帮助,因为Javascript的正面LookBehind不再受支持:(
您可以使用捕获组,然后提取其中包含258的组,如下所示:
let regex = /(value\), )(\d*)/;
let string = ".value), 258, '0')";
let output = regex.exec(string);
console.log(output[2])
//output[0] is the whole match
//output[1] is the first capture group: "value), "
//output[2] is the second capture group: "258"
str = ".value), 258, '0')"
match = /value\), (\d+),/.exec(str)
if (match) console.log(match[1]);
您可以使用\.value\),
匹配.value),然后使用(\d+)
捕获捕获组中的一个或多个数字。
这将是第一个捕获组,在示例中将是matches[1]
如果必须后面跟一个逗号,你可以使用一个积极的前瞻(?=,)
(你不必逃避逗号)或者代替前瞻匹配后所捕获的组如,
或, '0'\)
例如:
var pattern = /\.value\), (\d+)(?=,)/;
var str = ".value), 258, '0')";
matches = str.match(pattern);
console.log(matches[1]);