Expression régulière correspondant à quelque chose de plus de huit lettres, en Python
Malgré les tentatives de maître grep et liés à des logiciels GNU, je ne viens pas près de mastering regular expressions. Je fais comme eux, mais je les trouve un peu de l'horreur tout de même.
Je suppose que cette question n'est pas difficile pour certains, mais j'ai passé des heures à essayer de comprendre comment la recherche par le biais de mon livre préféré pour les mots plus que d'une certaine longueur, et à la fin, est venu avec de vraiment laid code:
twentyfours = [w for w in vocab if re.search('^........................$', w)]
twentyfives = [w for w in vocab if re.search('^.........................$', w)]
twentysixes = [w for w in vocab if re.search('^..........................$', w)]
twentysevens = [w for w in vocab if re.search('^...........................$', w)]
twentyeights = [w for w in vocab if re.search('^............................$', w)]
... une ligne pour chaque longueur, tout le chemin à partir d'une certaine longueur à l'autre.
Ce que je veux, au contraire, est d'être capable de dire " donnez-moi tous les mots de vocabulaire qui est plus grand que huit lettres en longueur.' Comment dois-je procéder?
source d'informationauteur magnetar
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de regex pour cela.
mais si regex doit être utilisé:
Voir http://www.regular-expressions.info/repeat.html pour le détail sur la
{a,b}
syntaxe.\w correspondra à la lettre et les personnages, {min[max]} permet de définir la taille. Une expression comme
donnera toutes les lettre/nombre de combinaisons de 9 caractères ou plus
.{9,}
pour "plus de huit",.{8,}
pour "huit ou plus"Ou tout simplement
len(w) > 8
^.{8,}$
Cela va correspondre à quelque chose qui a au moins 8 caractères. Vous pouvez également placer un nombre après le coma à la limite de la limite supérieure ou supprimer le premier numéro à ne pas restreindre la limite inférieure.
si vous voulez utiliser une expression régulière
{x} dit match de x caractères.
mais il est probablement mieux d'utiliser len(w)