正则表达式检查以查看字符串是否包含所有相同的数字

时间:2012-10-02 13:43:31

标签: regex expression

我是正则表达式的新手,对于我正在处理的项目,我需要验证一个字段,看看输入的10位数字是否包含所有相同的数字。

我找到了以下解决方案:

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

来源:http://www.coderanch.com/t/461871/java/java/Check-if-number-contains-all

我曾试图谷歌,但没有解释表达式正在做什么。我想知道是否有人可以解释这个表达是如何运作的。

2 个答案:

答案 0 :(得分:3)

它的工作原理如下:

([1-9])   // Capture any number 1-9 and store it as the first "capture"
\1        // Substitute the first "capture" as raw text into the regex
{9}       // Match that raw text another 9 times (i.e. 10 in total)

请确保0000000000与您的表达不匹配,因为[1-9]不匹配

答案 1 :(得分:1)

关于captured groups

的全部内容

([1-9])是一个capture group,可以捕获1-9之间的单个数字

\1{9}first capture group,即([1-9])重复9次..

示例

您可以使用匹配标记名称之间的内容匹配的正则表达式。

所以,使用这个正则表达式

<(.*?)>(.*?)<\1>

以下输入的

<party>At Garden<party>
<dance>With GirlFriend<dance>
<drink>risky<drive>

您将在第2组捕获

At Garden
With GirlFriend
//risky would not match