我是正则表达式的新手,对于我正在处理的项目,我需要验证一个字段,看看输入的10位数字是否包含所有相同的数字。
我找到了以下解决方案:
([1-9])\\1{9}
来源:http://www.coderanch.com/t/461871/java/java/Check-if-number-contains-all
我曾试图谷歌,但没有解释表达式正在做什么。我想知道是否有人可以解释这个表达是如何运作的。
答案 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