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

时间:2011-09-23 20:47:32

标签: regex cocoa-touch twitter utf-8 regexkitlite

这是我很快想出来的。它适用于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词来说还不够。 标签的'技术规范'是什么?

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

2 个答案:

答案 0 :(得分:4)

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


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

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

对于哈希标签,我只会说\ w或\ d

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

答案 1 :(得分:0)

REGEX_HASHTAG = '/(^|[^0-9A-Z&\/\?]+)([##]+)([0-9A-Z_]*[A-Z_]+[a-z0-9_üÀ-ÖØ-öø-ÿ]*)/iu';`