gpt4 book ai didi

javascript - 正则表达式匹配数据推文中的标签、提及、网址和特殊字符

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:20 28 4
gpt4 key购买 nike

来自推文的示例数据:

我总是在 #kampus 上见到 @gEmbul,我们总是打开该网站 https://www.youtube.com/ facebook# :) @007

日期是字符串,我想匹配带有符号@的提及,带有符号#的标签,任何网址和特殊字符。

我将在hastag前面和hastag后面匹配hastag#

这是我的代码

var data = "I always meet @gEmbul at #kampus we always open the site https://www.youtube.com/ facebook# :) @007"
function clean(data) {
data = data.replace(/(?:https?|ftp):\/\/[\n\S]+/g, '')
.replace(/\B\@\w\w+\b/g, '')
.replace(/\B\#\w\w+\b/g, '');
return data;
}
console.log(clean(data))

我会回来

我总是在我们总是开放的网站见面

谢谢。

最佳答案

我建议稍微缩小模式(您的 2 个正则表达式仅相差 1 个字符,这可以使用 [#@] 字符类来完成,并且由于您删除了匹配项,因此您可能只是将正则表达式与 | 交替运算符组合起来):

var data = "I always meet @gEmbul at #kampus we always open the site https://www.youtube.com/ facebook# :) @007"
function clean(data) {
data = data.replace(/(?:https?|ftp):\/\/[\n\S]+|\B[@#]\w+\b|\b\w+[@#]\B|\B[^\w\s]{2,}\B/g, '');
return data;
}
document.body.innerHTML = clean(data);

详细信息:

  • (?:https?|ftp):\/\/[\n\S]+ - 匹配可能跨越换行符的 URL 的正则表达式
  • | - 或
  • \B[@#]\w+\b - @# 后跟 1 个以上单词字符(作为整个单词) )
  • | - 或
  • \b\w+[@#]\B - 1 个以上单词字符,后跟 @#(作为整个单词)
  • | - 或
  • \B[^\w\s]{2,}\B - 非单词边界,除单词和空格之外的 2 个或更多字符,以及非单词边界。删除 \B 以在任何上下文中匹配 2 个或更多非空白/非单词字符。

关于javascript - 正则表达式匹配数据推文中的标签、提及、网址和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44529791/

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