Лучшее регулярное выражение для анализа Twitter #hashtags и @users - PullRequest
2 голосов
/ 24 сентября 2011

Вот что я быстро придумал.На 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 ]

4 голосов
/ 24 сентября 2011

Я не уверен, что это завершено, но это то, что я бы сделал:


Для имени пользователя добавьте проверку дляпробел / начало строки перед @ для устранения писем (?:^|\s):

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

для хеш-тегов, я бы сказал просто \ w или \ d

#define kHashtagRegex @"((?:#){1}[\w\d]{1,140})";
0 голосов
/ 24 сентября 2011
REGEX_HASHTAG = '/(^|[^0-9A-Z&\/\?]+)([##]+)([0-9A-Z_]*[A-Z_]+[a-z0-9_üÀ-ÖØ-öø-ÿ]*)/iu';`
...