2017-02-02 3 views
1

Wie schreibe ich eine Regex, um alle Instanzen zu behandeln, wo ein Teilstring 6 oder mehr aufeinanderfolgende Zahlen wie diese ist?Regulärer Ausdruck für gleiche fortlaufende Nummern

000000 
111111 
222222 
333333 
444444 
555555 

Ich versuchte [0-9]{6,}.

Ich plane, dies nachträglich zu negieren, damit ich Zeichenketten mit diesen Fällen ungültig machen kann.

Vielen Dank im Voraus!

+1

Versuchen Sie '^ ([0-9]) \ 1 {5,} $'. Könntest du mir bitte ein bisschen erklären, dass ich das nachher negativ machen will, damit ich Strings mit diesen Fällen aufheben kann? –

+0

@ WiktorStribiżew der Teil '\ 1' in der Regex ist neu für mich, wenn es Ihnen nichts ausmacht können Sie etwas Wissen darüber teilen. –

Antwort

3

Saiten, bestehend aus 6 oder mehr identisch Ziffern nur entsprechen, Sie

^([0-9])\1{5,}$ 

Das Muster passt verwenden:

  • ^ - Beginn der Zeichenfolge
  • ([0-9]) - Capturing Gruppe 1 passend zu einer Ziffer
  • \1{5,} - 5 oder mehr Vorkommen (aufgrund der limiting quantifier{5,}) des Wertes in der Gruppe eingefangen 1 (wobei \1 ein backreference der Gruppe 1-Wert)
  • $ - Ende der Schnur.
+0

Funktioniert genau wie, was ich brauchte! Vielen Dank! – mtryingtocode