A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大凶之兆 中级黑马   /  2015-11-20 18:01  /  3603 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
关于输出连续相同数字的问题?
规则: 手机号码要求必须以1开头,第二位是3,4,7,8中的一个,3-5位和末尾数字随意,6-10为是相同的数字且不能和第5位、最后一位相同。
怎么用正则定义规则?

15 个回复

倒序浏览
本帖最后由 1018chenhaiyang 于 2015-11-20 18:57 编辑

String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";      
回复 使用道具 举报
1018chenhaiyang 发表于 2015-11-20 18:52
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";

额,又看了看题,貌似我写的不行,这个数字不能和第五位和最后一位重复
回复 使用道具 举报
shadowmmm 来自手机 中级黑马 2015-11-20 22:38:36
板凳
搞这么复杂。。。。
回复 使用道具 举报
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";  
回复 使用道具 举报
zhuwenjia 来自手机 中级黑马 2015-11-22 16:12:09
地板
正则能实现这么复杂的吗?我很期待这个答案
回复 使用道具 举报
等我想想。。。应该可以实现
回复 使用道具 举报
"[1][3478]\\d{3}(\\d)\\1{4}\\d"
回复 使用道具 举报
【Java基础交流】之【一张贴搞定正则问题】!!
http://bbs.itheima.com/thread-263306-1-1.html
(出处: 黑马程序员IT技术论坛)
今天刚总结的正则问题汇总~你可以参考下~求人不如求己~自己动手丰衣足食!O(∩_∩)O哈哈~
回复 使用道具 举报
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";  
回复 使用道具 举报
自己动手丰衣足食
回复 使用道具 举报
明天学了告诉你
回复 使用道具 举报
马瑞_u9n12 来自手机 中级黑马 2015-12-5 23:50:38
13#
还没学!!!!!!!
回复 使用道具 举报
要琢磨明白为什么,哪里还不明白可以回复。重点还是在连续的5个数上,看注释,我写的很清楚。
/**
* (\\d)\\1{4}是连续4个和前面那个相同的字符,\用了转义
* @author Administrator
*       
*/
public class Test13 {
        public static void main(String[]args){
                String str="13522111113";
        Pattern pattern = Pattern.compile("[1]+[3,4,5,8]+[0-9]{3}+(\\d)\\1{4}+[0-9]");
        Matcher matcher = pattern.matcher(str);
        System.out.println(matcher.matches());
       
        }
}

回复 使用道具 举报
zcbcba123 发表于 2015-12-8 20:15
要琢磨明白为什么,哪里还不明白可以回复。重点还是在连续的5个数上,看注释,我写的很清楚。
/**
* (\\d) ...

你这题目都么看明白还教别人
回复 使用道具 举报

"[1][3478]\\d{3}(\\d)\\1{4}\\d"只能做到这一步了,本来想这样"1[3478]\\d{2}(\\d)([\\d&&[^$1$3]])\\2{4}(\\d)";
但是在里面取不到前面一组后面一组的值,现在坐等大神看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马