2011-09-23 1 views
2

Voici ce que j'ai rapidement trouvé. Il fonctionne avec regexKitLite sur l'iPhone:La meilleure regex pour analyser Twitter #hashtags et @users

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

Twitter permet seulement des lettres/chiffres, souligne _, et un maximum de 15 caractères (sans @). Mon regex semble bien, mais rapporte de faux positifs sur les adresses e-mail.

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

kHashtagRegex fonctionne avec des mots accentués, mais il ne suffit pas pour UTF-8 mots. Quelle est la «spécification technique» d'un hashtag?

Existe-t-il une référence quelque part sur quoi utiliser pour les analyser? Ou avez-vous des conseils sur la façon d'améliorer cette regex?

Répondre

4

Je ne sais pas si cela est terminé, bu ce que je ferais:


Pour le nom d'utilisateur, ajoutez un chèque pour les espaces/début de la chaîne avant la @ à éliminer les e-mails (?:^|\s):

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

pour les balises de hachage, je voudrais juste dire \ w ou \ d

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

Cela fonctionne pour moi comme les hashtags pourraient être faits de tous les caractères UTF-8, donc \ w \ d va bien. –

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

Merci l'homme, mais pourriez-vous citer vos sources/expliquer si c'est le vôtre. –

Questions connexes