javascript - @username 使用 JavaScript 的社交媒体正则表达式

标签 javascript regex parsing usernametoken

我对在 JavaScript 中使用正则表达式还比较陌生,并且遇到了与“@”用户名模式有关的特殊情况,这给我带来了大约 3 个小时的麻烦。

我想复制在 Facebook 和 Twitter 等网站的社交媒体文本字段中找到的 @username 模式。 (我知道他们解析标记化宏,但我想要一个纯正则表达式版本)。

我已经附上了我所实现的最接近模式的图像,但是我也会输入该图像,以便任何人都可以更轻松地复制并粘贴到他们自己的正则表达式模式检查器中。

如您所见,@ 符号能够捕获所有后续的字母字符,并且该 @ 符号之前没有任何内容,并以空格终止。有一种特殊情况,包含 @ 符号的 URL 应被忽略。 (如图所示)并且@符号可以在文本字段的最开始使用,在这种情况下应该解析句柄。

显然,我现有的模式正在收集 @ 符号前面的字符,这是不正确的。任何帮助都会很棒。

RegEx101 示例(带亮点)

RegEx101 example

正则表达式不起作用

/(^^|[^\/])(@[A-Za-z0-9_.]{3,25})/gm

方便复制+粘贴的文本版本

@test testing
 @test testing
testing ,@test
https://youtube.com/@test

我在 3 个多小时内尝试了多种模式组合,试图隔离流行社交网络中的 @handle 样式标签。我希望能够仅隔离包含单个 @ 分隔用户名的模式部分。我预计我可以忽略这个作为 URL 一部分的模式。

我的实际结果导致前面的字符被收集并添加到最终的字符串中,这是不正确的。

最佳答案

听起来您想要积极的回顾

(?<=YOUR_REGEX)
/(?<=^|[^\/])(@[A-Za-z0-9_.]{3,25})/gm

enter image description here

关于javascript - @username 使用 JavaScript 的社交媒体正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74579624/

相关文章:

java - 如何为给定类型的字符串创建正则表达式?

javascript - 正则表达式除带两位小数的数字之外的所有内容

c++ - 在 ANTLR 生成的 C 解析器中使用 C++ 类型

c++ - 有没有一种简单的方法可以从嵌入式 C++ GNU ARM 中的字符串解析 float ?

javascript - 局部变量不覆盖同名参数?

javascript - html 表格行在 Internet Explorer 中大约 50000 后重叠

html - 删除 HTML 标记中的所有属性,但使用正则表达式指定的属性除外

string - 在 Fortran 中解析字符串

javascript - 获取浏览器宽度并根据大小隐藏元素?

javascript - 由于 :,无法实例化模块 ngAnimate