正则表达式找到重复的数字

时间:2011-06-28 14:21:51

标签: regex

任何人都可以帮助我或指导我构建一个正则表达式来验证重复数字

例如:11111111,2222,99999999999等

它应该验证任何长度。

6 个答案:

答案 0 :(得分:44)

\b(\d)\1+\b

说明:

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

如果1也应该是有效匹配(零重复),请使用*代替+

如果您还想允许更长的重复次数(123123123),请使用

\b(\d+)\1+\b

如果正则表达式应该应用于整个字符串(而不是在较长的字符串中查找“repeat-numbers”),请使用行尾和第{}}代锚:

\b

编辑:如何匹配完全相反的,i。即一个数字,其中并非所有数字都相同(除非整个数字只是一个数字):

^(\d)\1+$

答案 1 :(得分:9)

要匹配单个数字的重复次数,您可以写([0-9])\1*

这会将[0-9]与一个组匹配,然后匹配该组的0次或多次重复(\1)。

您可以编写\1+来匹配一个或多个重复。

答案 2 :(得分:5)

使用反向引用:

(\d)\1+

可能你想使用某种锚^(\d)\1+$\b(\d)\1+\b

答案 3 :(得分:1)

我使用此表达式为我提供了所有相同数字的电话号码。

从本质上讲,这意味着给定数字原始重复次数为9,这导致连续出现10个相同数字。

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

答案 4 :(得分:0)

您可以通过反向引用轻松获取重复的文字或数字,请看下面的示例:

regexr.com

这段代码只是意味着[]中的模式。 ([内部模式])\1将找到与内部模式相同的内容。

答案 5 :(得分:0)

Client 匹配任何重复的数字