2010-08-18 6 views
2

J'ai une liste de mots construits à partir de différentes pages HTML. Au lieu d'écrire règle après règle pour éliminer les différents éléments, j'essaie de parcourir la liste et de dire si ce n'est pas un mot complet avec seulement des caractères alpha, il suffit de passer à autre chose. Cela ne fonctionne pas. Je suis horrible avec des expressions régulières (si vous ne pouvez pas déjà dire!), Donc je pourrais utiliser de l'aide. Comment est-ce que je l'écrirais ainsi il vérifie chaque w pour s'assurer qu'il a seulement un zA-Z dedans?Comment trouver uniquement des mots entiers en utilisant re.search?

Répondre

3

Vous y êtes presque. Vous devez juste dire à votre recherche de faire correspondre une chaîne entière de 1 ou plusieurs caractères.

for w in words: 
    if re.search('^[a-zA-Z]+$', w) == None: 
      continue 

Une autre solution (pour ce cas spécifique atleast) serait d'utiliser isalpha();

for w in words: 
    if not w.isalpha(): 
      continue 
+0

Il y a une faute de frappe dans votre deuxième solution, mais je suis d'accord que c'est mieux adapté au problème présenté. Il n'y a pas besoin d'utiliser une expression régulière ici. – Andrew

+0

@Andrew: merci, j'ai corrigé la faute de frappe. – Wolph

+0

Merci. Les deux fonctionnent à merveille. Je suppose qu'il est temps que je prenne un livre de python. Tellement de petites choses que j'ai besoin d'apprendre. – Nathan

Questions connexes