我对在 JavaScript 中使用正则表达式还比较陌生,并且遇到了与“@”用户名模式有关的特殊情况,这给我带来了大约 3 个小时的麻烦。
我想复制在 Facebook 和 Twitter 等网站的社交媒体文本字段中找到的 @username 模式。 (我知道他们解析标记化宏,但我想要一个纯正则表达式版本)。
我已经附上了我所实现的最接近模式的图像,但是我也会输入该图像,以便任何人都可以更轻松地复制并粘贴到他们自己的正则表达式模式检查器中。
如您所见,@ 符号能够捕获所有后续的字母字符,并且该 @ 符号之前没有任何内容,并以空格终止。有一种特殊情况,包含 @ 符号的 URL 应被忽略。 (如图所示)并且@符号可以在文本字段的最开始使用,在这种情况下应该解析句柄。
显然,我现有的模式正在收集 @ 符号前面的字符,这是不正确的。任何帮助都会很棒。
RegEx101 示例(带亮点)
正则表达式不起作用
/(^^|[^\/])(@[A-Za-z0-9_.]{3,25})/gm
方便复制+粘贴的文本版本
@test testing
@test testing
testing ,@test
https://youtube.com/@test
我在 3 个多小时内尝试了多种模式组合,试图隔离流行社交网络中的 @handle 样式标签。我希望能够仅隔离包含单个 @ 分隔用户名的模式部分。我预计我可以忽略这个作为 URL 一部分的模式。
我的实际结果导致前面的字符被收集并添加到最终的字符串中,这是不正确的。
最佳答案
关于javascript - @username 使用 JavaScript 的社交媒体正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74579624/