首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript阳性LookBehind

Javascript阳性LookBehind
EN

Stack Overflow用户
提问于 2018-03-03 01:07:19
回答 3查看 672关注 0票数 1

在这里可能需要帮助。由于我必须通过的特殊字符,我在寻找字符串时遇到了困难。

试图捕获"258“是以下字符串的任何数字:".value),258,'0')

下面是我正在寻找的字符串,因为我想捕获的字符串可以是多位数、多位数和仅位数0-9。

代码语言:javascript
复制
(?<=value\), )(.*)(?=\,)

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-03 01:58:27

您可以使用捕获组,然后提取其中包含258个的组,如下所示:

代码语言:javascript
复制
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"

票数 1
EN

Stack Overflow用户

发布于 2018-03-03 01:58:08

代码语言:javascript
复制
str = ".value), 258, '0')"
match = /value\), (\d+),/.exec(str)

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

票数 0
EN

Stack Overflow用户

发布于 2018-03-03 08:37:39

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

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

如果必须后面跟着逗号,则可以使用正的(?=,) (不必转义逗号),也可以使用,, '0'\)等捕获组之后的前瞻性匹配。

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

例如,

代码语言:javascript
复制
var pattern = /\.value\), (\d+)(?=,)/;
var str = ".value), 258, '0')";
matches = str.match(pattern);
console.log(matches[1]);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49079609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档