11 votes

Correspondance de 3 caractères ou plus identiques en python

Je cherche à utiliser des expressions régulières pour trouver trois ou plus du même caractère dans une chaîne. Par exemple : 'hello' ne matcherait pas 'ohhh' le ferait.

J'ai essayé des choses comme :

re.compile('(?!.*(.)\1{3,})^[a-zA-Z]*$')
re.compile('(\w)\1{5,}')

mais aucun des deux ne semble fonctionner.

22voto

Qtax Points 20487

(\w)\1{2,} est l'expression régulière que vous recherchez.

En Python, cela pourrait être cité comme r"(\w)\1{2,}"

2voto

Spudley Points 85371

Si vous recherchez le même caractère trois fois de suite, vous pouvez faire ceci :

(\w)\1\1

si vous voulez trouver le même caractère trois fois n'importe où dans la chaîne, vous devez mettre un point et une astérisque entre les parties de l'expression ci-dessus, comme ceci :

(\w).*\1.*\1

Le .* correspond à n'importe quel nombre de n'importe quel caractère, donc cette expression devrait correspondre à n'importe quelle chaîne qui a n'importe quel caractère de mot unique apparaissant trois fois ou plus, avec n'importe quel nombre de caractères entre eux.

En espérant que cela vous aide.

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