黑马程序员技术交流社区

标题: 关于正则 [打印本页]

作者: 大凶之兆    时间: 2015-11-20 18:01
标题: 关于正则
关于输出连续相同数字的问题?
规则: 手机号码要求必须以1开头,第二位是3,4,7,8中的一个,3-5位和末尾数字随意,6-10为是相同的数字且不能和第5位、最后一位相同。
怎么用正则定义规则?

作者: 1018chenhaiyang    时间: 2015-11-20 18:52
本帖最后由 1018chenhaiyang 于 2015-11-20 18:57 编辑

String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";      
作者: 1018chenhaiyang    时间: 2015-11-20 19:00
1018chenhaiyang 发表于 2015-11-20 18:52
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";

额,又看了看题,貌似我写的不行,这个数字不能和第五位和最后一位重复
作者: shadowmmm    时间: 2015-11-20 22:38
搞这么复杂。。。。
作者: 袁有福123    时间: 2015-11-20 23:31
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";  
作者: zhuwenjia    时间: 2015-11-22 16:12
正则能实现这么复杂的吗?我很期待这个答案
作者: 雪海间    时间: 2015-11-22 21:36
等我想想。。。应该可以实现
作者: liuqiang11164    时间: 2015-11-23 18:57
"[1][3478]\\d{3}(\\d)\\1{4}\\d"
作者: 传奇查    时间: 2015-11-26 02:29
【Java基础交流】之【一张贴搞定正则问题】!!
http://bbs.itheima.com/thread-263306-1-1.html
(出处: 黑马程序员IT技术论坛)
今天刚总结的正则问题汇总~你可以参考下~求人不如求己~自己动手丰衣足食!O(∩_∩)O哈哈~

作者: 大豆子    时间: 2015-11-29 02:05
String regex ="[1][3478]\\d{3}(\\d)\\1{4}\\d";  
作者: bbaijiajinger    时间: 2015-12-3 23:36
自己动手丰衣足食
作者: liuzhipeng    时间: 2015-12-4 00:34
明天学了告诉你
作者: 马瑞_u9n12    时间: 2015-12-5 23:50
还没学!!!!!!!
作者: zcbcba123    时间: 2015-12-8 20:15
要琢磨明白为什么,哪里还不明白可以回复。重点还是在连续的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());
       
        }
}


作者: 1191065242    时间: 2016-5-1 16:59
zcbcba123 发表于 2015-12-8 20:15
要琢磨明白为什么,哪里还不明白可以回复。重点还是在连续的5个数上,看注释,我写的很清楚。
/**
* (\\d) ...

你这题目都么看明白还教别人
作者: 1191065242    时间: 2016-5-1 17:53

"[1][3478]\\d{3}(\\d)\\1{4}\\d"只能做到这一步了,本来想这样"1[3478]\\d{2}(\\d)([\\d&&[^$1$3]])\\2{4}(\\d)";
但是在里面取不到前面一组后面一组的值,现在坐等大神看看




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