我有这个例子:
<@445288012218368010>
我想从<@>符号之间获取值。 我是这样尝试的:
string.replace(/^(?:\<\@)(?:.*)(?:\>)$/gim, '');
但是,我没有任何结果。它将删除/删除整个字符串。 我只需要这一部分:445288012218368010(它是动态的,所以它不是相同的数字)。 无论如何,这是针对不和谐聊天机器人的,我知道还有其他方法可以检查提到的名称,但是我想在正则表达式中执行此操作,因为我尝试执行的操作无法采用通用方法。 是的,如何从这些符号之间获取值? 我需要在node.js正则表达式中使用它。
答案 0 :(得分:0)
您可以使用String#match,它将返回字符串的正则表达式匹配项(在这种情况下,RegExp为\d+
(\d+
的括号使<string>.match(/<@(\d+)>/)
成为其自己的这样,您可以使用<string>.match(/<@(\d+)>/)[1]
来获取正则表达式结果,并可以使用$(document).ready(function() {
$(".menu-icon").on("click", function() {
$("nav ul").toggleClass("showing");
});
// add this instruction !
setTimeout(function() {plusSlides(1) }, 1000)
})
来获取正则表达式的第一组(在本例中为数字)。
答案 1 :(得分:0)
您使用正则表达式进行匹配,但是您使用了一个非捕获组(?:.*)
,因此您获得了完全匹配并将其替换为空字符串。请注意,您可以省略第一个和第三个非捕获组,而改为使用<@
和>
。
您可以使用捕获组([^>]+)
或(\d+)
匹配括号之间的内容,并使用replace并替换中引用第一个捕获组$1
。
console.log("<@445288012218368010>".replace(/^<@([^>]+)>$/gim, '$1'));