Regex pour trouver des nombres répétés

quelqu'un Peut m'aider ou me diriger pour construire une regex pour valider la répétition des nombres

eg: 11111111, 2222, 999999999, etc

il doit être validé pour n'importe quelle longueur.

23
demandé sur SLaks 2011-06-28 18:21:50

5 réponses

\b(\d)+\b

Explication:

\b   # match word boundary
(\d) # match digit remember it
+  # match one or more instances of the previously matched digit
\b   # match word boundary

Si 1 doit aussi être une correspondance valide (zéro répétitions), utilisez un * au lieu de +.

si vous voulez aussi permettre des répétitions plus longues (123123123) utiliser

\b(\d+)+\b

si le regex doit être appliqué à la chaîne entière (par opposition à la recherche de " repeat-numbers in a longer string), utilisez des ancres de début et de fin de ligne au lieu de \b:

^(\d)+$

Edit: Comment faire correspondre exactement en face, I. E. un nombre dont tous les chiffres ne sont pas identiques (sauf si le nombre entier est simplement un chiffre):

^(\d)(?!+$)\d*$

^     # Start of string
(\d)  # Match a digit
(?!   # Assert that the following doesn't match:
 +  # one or more repetitions of the previously matched digit
 $    # until the end of the string
)     # End of lookahead assertion
\d*   # Match zero or more digits
$     # until the end of the string
42
répondu Tim Pietzcker 2011-06-28 14:38:37

pour correspondre À un certain nombre de répétitions d'un seul chiffre, vous pouvez écrire ([0-9])*.

correspond à [0-9] dans un groupe, puis correspond à 0 ou plus répétitions () de ce groupe.

Vous pouvez écrire + pour correspondre à un ou plusieurs répétitions.

9
répondu SLaks 2011-06-28 14:24:17

utilisez un backreference:

(\d)+

probablement vous voulez utiliser une sorte d'ancres ^(\d)+$ ou \b(\d)+\b

5
répondu mhyfritz 2011-06-28 14:25:25

j'ai utilisé cette expression pour me donner tous les numéros de téléphone qui sont tous les mêmes chiffres.

fondamentalement, cela signifie donner 9 répétitions de la première répétition originale d'un nombre donné, ce qui donne 10 du même nombre dans une rangée.

([0-9])\1{9}

1
répondu Mimi Mosa 2018-07-02 20:40:26

Vous pouvez obtenir le texte ou les nombres reppetés facilement par backreference jetez un coup d'oeil à l'exemple suivant:

regexr.com

ce code signifie simplement quelque soit le motif à l'intérieur [] . ([inside]) allez trouver de même que l'intérieur du motif de l'avant.

0
répondu Parteek Sharma 2018-02-08 07:32:59