Javascript的正面LookBehind

问题描述 投票:1回答:3

可以在这里使用一些帮助。由于我必须通过的特殊字符,我已经挖掘并找不到字符串。

试图捕获任何数字,其中“258”是以下字符串:“。value”,258,“0”)“

以下是我正在寻找的,因为我想要捕获的字符串可以是多位数长,只有数字0-9。

(?<=value\), )(.*)(?=\,)

任何替代方案都会有所帮助,因为Javascript的正面LookBehind不再受支持:(

javascript regex
3个回答
1
投票

您可以使用捕获组,然后提取其中包含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"

0
投票

str = ".value), 258, '0')"
match = /value\), (\d+),/.exec(str)

if (match) console.log(match[1]);

0
投票

您可以使用\.value\),匹配.value),然后使用(\d+)捕获捕获组中的一个或多个数字。

这将是第一个捕获组,在示例中将是matches[1]

如果必须后面跟一个逗号,你可以使用一个积极的前瞻(?=,)(你不必逃避逗号)或者代替前瞻匹配后所捕获的组如,, '0'\)

\.value\), (\d+)(?=,)

例如:

var pattern = /\.value\), (\d+)(?=,)/;
var str = ".value), 258, '0')";
matches = str.match(pattern);
console.log(matches[1]);
© www.soinside.com 2019 - 2024. All rights reserved.