解析 Twitter #hashtags 和 @users 的最佳正则表达式
这是我很快想到的。它可与 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定这是否完整,但这就是我要做的:
对于用户名,在
之前添加对空格/字符串开头的检查@
消除电子邮件(?:^|\s)
:对于井号标签,我只会说 \w 或 \d
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)
:for the hash tags, I would just say \w or \d