我正在尝试测试一个字符串(在java中)是否有9个相邻的相同数字...我可以测试相邻的相同号码-但只能测试下一个相邻的号码...
boolean result = string.matches("/([0-9])\1/g");我想匹配9个字符--有人能帮我吗?
谢谢
编辑:一些示例
"1111111111" should match
"222222222" should match
"3311111111133" should match
"1234567890" should not match发布于 2011-07-18 18:32:18
试试这个正则表达式:([0-9])\1{8}
发布于 2011-07-18 18:38:59
Java贪婪量词:
X{n}机器: X,恰好n次
X将是任何数字= [0-9],n将是9
([0-9]{9})编辑:
这将匹配9个相同的数字:
([0-9]\1{8})[0-9]可以处理任何数字
\1是执行的第一个匹配
\1{8}与第一次匹配匹配8次
发布于 2016-03-28 19:12:41
我发现Kirill Polishchuk回答得很好。但是,在极少数情况下,如果您必须打印由空格分隔的9个相邻字符(如在文本文件中),则可以执行以下操作:
输入:
1111111111 4444444444 4455555555558899 567833333333339可以按如下方式修改regex:
如果列之间只有一个空格,则为'([0-9]) ?\1{8}'。或
如果列之间的空格数量不均匀,则为'([0-9]) *\1{1}'。
如果你想和grep一起使用,你可以这样做:
grep -E '([0-9]) ?\1{8}'或
grep -E '([0-9]) *\1{8}'希望这能有所帮助。
https://stackoverflow.com/questions/6731567
复制相似问题