在这里可能需要帮助。由于我必须通过的特殊字符,我在寻找字符串时遇到了困难。
试图捕获"258“是以下字符串的任何数字:".value),258,'0')”
下面是我正在寻找的字符串,因为我想捕获的字符串可以是多位数、多位数和仅位数0-9。
(?<=value\), )(.*)(?=\,)任何替代方案都会有帮助,因为对Javascript的正LookBehind不再支持:(
发布于 2018-03-03 01:58:27
您可以使用捕获组,然后提取其中包含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"
发布于 2018-03-03 01:58:08
str = ".value), 258, '0')"
match = /value\), (\d+),/.exec(str)
if (match) console.log(match[1]);
发布于 2018-03-03 08:37:39
您可以匹配.value),使用\.value\),,然后用(\d+)捕获组中的一个或多个数字。
这将是第一个捕获组,在示例中将是matches[1]。
如果必须后面跟着逗号,则可以使用正的(?=,) (不必转义逗号),也可以使用,或, '0'\)等捕获组之后的前瞻性匹配。
例如,:
var pattern = /\.value\), (\d+)(?=,)/;
var str = ".value), 258, '0')";
matches = str.match(pattern);
console.log(matches[1]);
https://stackoverflow.com/questions/49079609
复制相似问题