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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹强 中级黑马   /  2014-5-30 21:30  /  3028 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目是:写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
正则表达式是什么啊(最好能举个例子老师讲的里面好像没有啊)还希望大神给解下

23 个回复

倒序浏览
哈哈,和我的题目一样的。这个简单哎
回复 使用道具 举报
呀嘛咕 发表于 2014-5-30 22:27
哈哈,和我的题目一样的。这个简单哎

小伙伴 给你咯

String res = "[1][3458][0-9]{4}([0-9])\\1{4}";       
回复 使用道具 举报
菜鸟过来学习下
回复 使用道具 举报
/^1[3458]\d{4}(\d){5}$/这应该是最标准的吧,试试吧,希望能帮到你
回复 使用道具 举报 0 1
同学习.................
回复 使用道具 举报
正则还没看,过来学习下
回复 使用道具 举报
曹强 中级黑马 2014-5-31 10:08:45
8#
呀嘛咕 发表于 2014-5-30 22:30
小伙伴 给你咯

String res = "[1][3458][0-9]{4}([0-9])\\1{4}";

话说这个学过吗,我怎么重来没见过,真心的
回复 使用道具 举报
曹强 中级黑马 2014-5-31 10:10:02
9#
难道就木有大神讲解下,嗨………………
回复 使用道具 举报
曹强 发表于 2014-5-31 10:10
难道就木有大神讲解下,嗨………………

你没有学过正则吗?
回复 使用道具 举报
呀嘛咕 发表于 2014-5-31 10:40
你没有学过正则吗?

String res = "[1][3458][0-9]{4}([0-9])\\1{4}";   
我这个很容易理解的
第一位只能为1,所以是[1]
第二位为3458,所以是[3458]
然后4位为数字,任意数字[0-9]当然也可以写成\\d,4位{4}
最后5位为相同数字,所以将第一个数字封装成组([0-9])然后去组\\1然后再出现4位,所以就是([0-9])\\1{4}了

小伙伴 要学会举一反三哦 加油!

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
呀嘛咕 发表于 2014-5-31 10:48
String res = "[1][3458][0-9]{4}([0-9])\\1{4}";   
我这个很容易理解的
第一位只能为1,所以是[1]

谢谢,不过老师的视频里真的有吗,我是真心没见过,我是零基础开始学的
回复 使用道具 举报
正则表达式是符合一定规则的字符串表达式。有特殊应用场景。常用来字符串匹配,比如:手机号码,QQ号码,用例//手机号是否正确                 String tel="13069700000";//要匹配的手机号                 String regex="1[3458][0-9]{4}([0-9])\\1{4}";                 boolean b=tel.matches(regex);                 System.out.println(b);
回复 使用道具 举报
正则表达式http://www.jb51.net/tools/zhengze.html
回复 使用道具 举报
public static void main(String[] args) {
                // 定义号码规则
                String regex = "[1][3458]\\d{4}(\\d)\\1{4}";
                // 输入电话号码
                Scanner numIn = new Scanner(System.in);
                System.out.println("请输入电话号码:");
                String str = numIn.next();
                if (str.toCharArray().length == 11) {
                        if (str.matches(regex)) {
                                System.out.println("匹配成功!");
                        } else {
                                System.out.println("匹配错误!");
                        }
                } else {
                        System.out.println("电话号码不正确!");
                }
        }
}
回复 使用道具 举报
学习学习。。。。
回复 使用道具 举报
宁致远 发表于 2014-6-1 09:16
正则表达式是符合一定规则的字符串表达式。有特殊应用场景。常用来字符串匹配,比如:手机号码,QQ号码,用 ...

给力啊
回复 使用道具 举报
KevinSmart 发表于 2014-6-1 20:01
public static void main(String[] args) {
                // 定义号码规则
                String regex = "[1][3458]\\d{4}(\\d)\\1 ...

这个更给力,不过你早点就好了,我都交上去了,拙计的,终于知道我哪扣分了
回复 使用道具 举报
基础有待加强
回复 使用道具 举报
lin' 发表于 2014-5-30 23:07
/^1[3458]\d{4}(\d){5}$/这应该是最标准的吧,试试吧,希望能帮到你

这个好像最后不能实现5位连续相同的数啊!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马