2012-11-16 5 views
2

Je filtre les tweets dans mon application et je souhaite renvoyer tous les tweets ayant un certain mot dans le texte. Donc, si je filtre BBC et je veux toutes les instances de BBC par exemple. BBC, bbc, BBC1, #BBC, @bbc, comment pourrais-je écrire la regex.Utilisation de regex Python pour les données Twitter

Jusqu'à présent, je suis en train de faire:

re.compile(r'#|@[0-9]'+term, re.IGNORECASE) 

Terme est une liste contenant des mots et je veux que les mots retournés dans la liste avec le @ supplémentaire ou # ou 0-9 appending ou annexant ce mot ou le mot par lui-même.

Merci

+1

Le signe plus devrait probablement être * en dehors * les supports ... – kindall

+0

Si je fais ça, je reçois cette erreur: " Exception rencontrée: type (s) d'opérande non pris en charge pour &: 'str' et 'int' " – user94628

+1

En dehors des * crochets * ne se trouvant pas à l'extérieur des guillemets! Ça fait encore partie de la regex ... – kindall

Répondre

2

Utilisez le séparateur '\b' pour trouver des mots entiers:

re.compile(r'\b(?:#|@|)[0-9]*%s[0-9]*\b' % re.escape(term), re.IGNORECASE) 
+0

Merci, c'est génial. – user94628

Questions connexes