2 votes

Comment trouver uniquement des mots entiers en utilisant re.search ?

J'ai une liste de mots construite à 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 que si ce n'est pas un mot complet avec seulement des caractères alphabétiques, il faut passer à autre chose. Cela ne fonctionne pas.

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

Je suis horrible avec les expressions régulières (si vous ne pouvez pas déjà le dire !), donc je pourrais avoir besoin d'aide. Comment puis-je l'écrire pour qu'il vérifie chaque w pour s'assurer qu'il n'y a que des a-zA-Z dedans ?

3voto

Wolph Points 28062

Vous y êtes presque. Il vous suffit d'indiquer à votre recherche de 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 du moins) serait d'utiliser isalpha() ;

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X