黑马程序员技术交流社区

标题: 正则怎么匹配手机号? [打印本页]

作者: Orangeapp    时间: 2015-9-25 23:05
标题: 正则怎么匹配手机号?
正则不好记,看着老师的讲解还可以理解,然后自己去看的时候就不知道写的是什么了。
有道题请教各位大神,帮忙解答下。

写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
作者: Orangeapp    时间: 2015-9-25 23:08
正则真的有点难懂哦
作者: Arron    时间: 2015-9-25 23:12
学习了 谢谢啦!!!
作者: 15001162522    时间: 2015-9-25 23:29
碰巧,今天刚看了这道题,献上我的理解。。
Str reg ="1[3458]\\d{4}(\\d)\\1{4}"

1表示第一个位置必须是数字1
【3458】表示第二个位置可以是3、4、5、8的任何一个
\\d{4}表示第三个位置开始往后的4个位置,可以是0-9的任何数字
(\\d)表示该位置(第7位)可以是0-9的任何数字
\\1表示获取正则表达式第一个()中的内容,即获取了(\\d)
{4}表示被重复了4个位置


作者: sfgjys    时间: 2015-9-25 23:36
都说正则难,难倒哪里啊
作者: a4903913    时间: 2015-9-25 23:36
"1[3458]?\"
作者: a4903913    时间: 2015-9-25 23:41
上面那个回复错了   按回车换行 居然发出去了  看下这个   “1[3458]{1}\\d{4}(\\d)\\1{4}”  大概是这样  或者你可以看看4楼的
作者: cuijinghao    时间: 2015-9-26 01:16
1[3458][0-9]{4}([0-9])\\1{4}
作者: 季995    时间: 2015-9-26 14:49
reg="1[3458]\\d{4}(\\d)\\1+{4}";//1:开头必须是1,【3458】第二位必须是括号中间的数,\\d{4}后面4位任意数字,(\\d)\\1+{4}最后5位为任意相同的数字
作者: 不隆卡    时间: 2015-9-26 15:31
正则还好吧,不是很难
作者: djsbiu    时间: 2015-9-26 17:25
15001162522 发表于 2015-9-25 23:29
碰巧,今天刚看了这道题,献上我的理解。。
Str reg ="1[3458]\\d{4}(\\d)\\1{4}"

\\1怎么表示的,java api能查到吗?

作者: 15001162522    时间: 2015-9-26 17:26
djsbiu 发表于 2015-9-26 17:25
\\1怎么表示的,java api能查到吗?

没查,我编译运行结果是正确的。。。你可以自己查查看,其实我也是菜鸟~~~
作者: lostyou    时间: 2015-9-26 19:00
15001162522 发表于 2015-9-25 23:29
碰巧,今天刚看了这道题,献上我的理解。。
Str reg ="1[3458]\\d{4}(\\d)\\1{4}"

可以的 这个学习了




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