我正在尝试测试9个相邻数字的字符串(在java中)...我可以测试相邻的相同数字 - 但只测试下一个相邻数字....
boolean result = string.matches("/([0-9])\1/g");
我想匹配9个角色 - 有谁能帮助我?
由于
编辑:一些例子
"1111111111" should match
"222222222" should match
"3311111111133" should match
"1234567890" should not match
答案 0 :(得分:6)
试试这个正则表达式:([0-9])\1{8}
答案 1 :(得分:3)
Java Greedy量词:
X{n}
机器人:X,恰好n次
X将是任何数字= [0-9]
,n将是9
([0-9]{9})
编辑:
这将匹配9个相同的数字:
([0-9]\1{8})
[0-9]
加工任何数字
\1
是第一个匹配,执行
\1{8}
匹配第一场比赛的8倍
答案 2 :(得分:0)
我发现Kirill Polishchuk的答案很好而且很好。但是,在极少数情况下,如果必须打印9个由空格分隔的相邻字符(如文本文件中),则可以执行以下操作:
输入:
1111111111 4444444444 4455555555558899 567833333333339
正则表达式可以修改如下:
'([0-9]) ?\1{8}'
如果列之间只有一个空格。
或
'([0-9]) *\1{1}'
如果列之间的空格数不均匀。
如果您想使用grep,可以这样做:
grep -E '([0-9]) ?\1{8}'
或
grep -E '([0-9]) *\1{8}'
希望这有帮助。