RegEx - 测试9个相邻的相同数字

时间:2011-07-18 10:30:37

标签: java regex

我正在尝试测试9个相邻数字的字符串(在java中)...我可以测试相邻的相同数字 - 但只测试下一个相邻数字....

boolean result = string.matches("/([0-9])\1/g");

我想匹配9个角色 - 有谁能帮助我?

由于

编辑:一些例子

"1111111111" should match

"222222222" should match

"3311111111133" should match

"1234567890" should not match

3 个答案:

答案 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}'

希望这有帮助。