Node.js 使用正则表达式从字符串中获取值
我举个例子:Node.js 使用正则表达式从字符串中获取值,node.js,regex,Node.js,Regex,我举个例子: <@445288012218368010> 我想从符号之间得到值。 我试过: string.replace(/^(?:\<\@)(?:.*)(?:\>)$/gim, ''); string.replace(/^(?:\)$/gim,”); 但是我没有得到任何结果。它将删除/删除整个字符串。 我只想要这个部分:4452801021218368010(它将是动态的,所以是的,它将不是相同的数字)。 不管怎么说,这是针对discord聊天机器人的,我知道
<@445288012218368010>
我想从符号之间得到值。
我试过:
string.replace(/^(?:\<\@)(?:.*)(?:\>)$/gim, '');
string.replace(/^(?:\)$/gim,”);
但是我没有得到任何结果。它将删除/删除整个字符串。
我只想要这个部分:4452801021218368010(它将是动态的,所以是的,它将不是相同的数字)。
不管怎么说,这是针对discord聊天机器人的,我知道还有其他方法可以检查提到的名字,但我想在正则表达式中这样做,因为我尝试做的事情不能用普通方法。
那么,是的,我怎样才能从这些符号之间得到值呢?
我在node.js regex中需要它。您可以使用String#match,它将返回字符串的正则表达式匹配项(在这种情况下,RegExp将是
(\d+
周围的括号使\d+
成为它自己的组)。这样您可以使用.match(//)
获取正则表达式结果,并匹配(//)[1]
获取正则表达式的第一组(在本例中为数字)。正则表达式匹配,但使用非捕获组(?:*)
因此,您可以获得完整匹配,并用空字符串替换。请注意,您可以省略第一个和第三个非捕获组,而改用
您可以使用捕获组([^>]+)
或(\d+)
匹配括号之间的内容,并使用替换并在替换中引用第一个捕获组$1
console.log(“.replace(/^]+)>$/gim,$1”)
您发布的字符串看起来像是Discord用户提及的内容,您可能希望使用
作为正则表达式,也可以从昵称提及中获取ID(Discord对此(
)使用略有不同的提及方式)谢谢:)我将在9分钟后接受您的回答,因为网站现在不允许(再次感谢你)