解析 Twitter #hashtags 和 @users 的最佳正则表达式

发布于 2024-12-06 08:58:31 字数 481 浏览 1 评论 0原文

这是我很快想到的。它可与 iPhone 上的 regexKitLite 配合使用:

#define kUserRegex @"((?:@){1}[0-9a-zA-Z_]{1,15})";

Twitter 仅允许使用字母/数字、下划线 _ 和最多 15 个字符(不含 @)。我的正则表达式看起来不错,但报告了电子邮件地址的误报。

#define kHashtagRegex @"((?:#){1}[0-9a-zA-Z_àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]{1,140})";

kHashtagRegex 适用于重音单词,但对于 UTF-8 单词来说还不够。 主题标签的“技术规格”是什么?

是否有关于使用什么来解析这些的参考?或者您对如何增强这个正则表达式有什么建议吗?

Here is what I quickly came up with. It works with regexKitLite on the iPhone:

#define kUserRegex @"((?:@){1}[0-9a-zA-Z_]{1,15})";

Twitter only allows letters/numbers, underscores _, and a max of 15 chars (without @). My regex seems fine but reports false positives on e-mail addresses.

#define kHashtagRegex @"((?:#){1}[0-9a-zA-Z_àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]{1,140})";

kHashtagRegex works with accentuated words but it is not enough for UTF-8 words.
What is the 'tech spec' of a hashtag?

Is there a reference somewhere on what to use for parsing these? Or do you have advice on how to enhance this regex?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多彩岁月 2024-12-13 08:58:31

我不确定这是否完整,但这就是我要做的:


对于用户名,在 之前添加对空格/字符串开头的检查@ 消除电子邮件 (?:^|\s)

#define kUserRegex @"((?:^|\s)(?:@){1}[0-9a-zA-Z_]{1,15})";

对于井号标签,我只会说 \w 或 \d

#define kHashtagRegex @"((?:#){1}[\w\d]{1,140})";

I'm not sure if this is complete, bu this is what I would do:


For the username, Add a check for whitespace/start of string before the @ to eliminate emails (?:^|\s):

#define kUserRegex @"((?:^|\s)(?:@){1}[0-9a-zA-Z_]{1,15})";

for the hash tags, I would just say \w or \d

#define kHashtagRegex @"((?:#){1}[\w\d]{1,140})";
匿名的好友 2024-12-13 08:58:31
REGEX_HASHTAG = '/(^|[^0-9A-Z&\/\?]+)([##]+)([0-9A-Z_]*[A-Z_]+[a-z0-9_üÀ-ÖØ-öø-ÿ]*)/iu';`
REGEX_HASHTAG = '/(^|[^0-9A-Z&\/\?]+)([##]+)([0-9A-Z_]*[A-Z_]+[a-z0-9_üÀ-ÖØ-öø-ÿ]*)/iu';`
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文