gpt4 book ai didi

javascript - 使用 RegExp 匹配多个实例并存储值 (JavaScript)

转载 作者:行者123 更新时间:2023-12-02 16:37:20 24 4
gpt4 key购买 nike

我想将所有值与此模式匹配:@[\S]+。这将用于获取注释中 @ 之后的所有名称。示例:

这里有一些人:@Name1、@Name2、@Name3、@Name4

应返回:["Name1", "Name2", "Name3", "Name4"]

我尝试使用 comment.match(/@[\S]+/ig) 但这会返回一个带有 @ 符号的数组。我尝试用括号封装该模式: comment.match(/@([\S]+)/ig) 但这也没有帮助。可能有超过 10 个匹配的名称,因此无法使用 RegExp,而且我不想遍历数组并将其删除。

感谢您的帮助:)。

最佳答案

作为@KrzysztofWende,您可以使用背后方法,或者您可以使用捕获组:

使用正则表达式:

/@(\w+)/ig

我将 \S 替换为 \w,因为否则逗号 (,) 会与 Name1 匹配也是如此。

然后代码如下:

var myString = "Here are some people: @Name1, @Name2, @Name3, @Name4";
var myRegexp = /@(\w+)/ig;
var match = myRegexp.exec(myString);
alert(match[1]);//do something useful with match[1]

或者如果您需要迭代所有可能的匹配项:

var myString = "Here are some people: @Name1, @Name2, @Name3, @Name4";
var myRegexp = /@(\w+)/ig;
var match = myRegexp.exec(myString);
while (match != null) {
alert(match[1]);
match = myRegexp.exec(myString);
}

该解决方案利用捕获组:它从1 开始对括号进行编号(0 是总匹配)。在这种情况下,组 1(\w+)

JSFiddle demo .

关于javascript - 使用 RegExp 匹配多个实例并存储值 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27810050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com