168 votes

Expression régulière pour correspondre à tout caractère répété plus de 10 fois

Je cherche une expression régulière simple qui corresponde au même caractère répété plus d'une dizaine de fois. Donc par exemple, si j'ai un document jonché de lignes horizontales :

=================================================

Il correspondra à la ligne de = caractères car il est répété plus de 10 fois. Notez que je voudrais que cela fonctionne pour n'importe quel personnage.

47voto

Michał Niklas Points 15907

En Python, vous pouvez utiliser (.)\1{9,}

  • (.) forme un groupe à partir d'un caractère (n'importe quel caractère)
  • \1{9,} correspond à neuf caractères ou plus du 1er groupe

exemple :

txt = """1. aaaaaaaaaaaaaaa
2. bb
3. cccccccccccccccccccc
4. dd
5. eeeeeeeeeeee"""
rx = re.compile(r'(.)\1{9,}')
lines = txt.split('\n')
for line in lines:
    rxx = rx.search(line)
    if rxx:
        print line

Sortie :

1. aaaaaaaaaaaaaaa
3. cccccccccccccccccccc
5. eeeeeeeeeeee

7voto

jeekl Points 307

. n'importe quel caractère. Utilisé en conjonction avec les bretelles bouclées déjà mentionnées :

$: cat > test
========
============================
oo
ooooooooooooooooooooooo


$: grep -E '(.)\1{10}' test
============================
ooooooooooooooooooooooo

4voto

SilentGhost Points 79627
={10,}

correspond = qui est répété 10 fois ou plus.

2voto

dalloliogm Points 2628

utiliser l'opérateur {10,} :

$: cat > testre
============================
==
==============

$: grep -E '={10,}' testre
============================
==============

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