黑马程序员技术交流社区

标题: 怎么用正则表达式来匹配4位数都相同的数字字,如1111,2222 [打印本页]

作者: 万坤    时间: 2014-4-24 15:36
标题: 怎么用正则表达式来匹配4位数都相同的数字字,如1111,2222
本帖最后由 万坤 于 2014-4-25 17:03 编辑

如题,不要^[0000|1111|2222|3333|4444|5555|6666|7777|8888|9999]$,
作者: 悠然丶    时间: 2014-4-24 15:53
String regex ="[\\d]{4}";这样写就可以了
作者: 张稳    时间: 2014-4-24 16:20
^(\d)\1{4}$
作者: 香菜病病患    时间: 2014-4-24 16:20
本帖最后由 香菜病病患 于 2014-4-24 16:26 编辑

用组的概念 "(\\d)\\1{3}"
作者: 万坤    时间: 2014-4-24 16:25
悠然丶 发表于 2014-4-24 15:53
String regex ="[\\d]{4}";这样写就可以了

不对,你这样只能判断四位数字,不能判断这四个数是不是相同的

作者: 万坤    时间: 2014-4-24 16:26
本帖最后由 万坤 于 2014-4-24 16:38 编辑

用这个^([0-9])\\1+可以匹配多位重复的。但是用^([0-9])\\1{4}$,就不能匹配4位重复,求解释
作者: 万坤    时间: 2014-4-24 16:33
本帖最后由 万坤 于 2014-4-24 16:34 编辑
张稳 发表于 2014-4-24 16:20
^(\d)\1{4}$

file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\632419546\QQ\WinTemp\RichOle\)_0@I_2]6}R37PK3N8)(YUQ.jpg
报错了!


作者: 张稳    时间: 2014-4-24 17:20
本帖最后由 张稳 于 2014-4-24 17:53 编辑
万坤 发表于 2014-4-24 16:33
报错了!

试试^(\\d)(\\1){3}$
我用eclipse验证了的,这个是对的

作者: 万坤    时间: 2014-4-25 17:02
张稳 发表于 2014-4-24 17:20
试试^(\\d)(\\1){3}$
我用eclipse验证了的,这个是对的

嗯,这个是对的,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2