黑马程序员技术交流社区

标题: 正则表达式问题? [打印本页]

作者: py强子    时间: 2013-8-14 15:42
标题: 正则表达式问题?
本帖最后由 py强子 于 2013-8-17 19:54 编辑

写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
对于正则一点概念都没有;谢谢;

作者: longlangcx    时间: 2013-8-14 16:10
"1[3458]\\d{4}(\\d)\\1{4}"
大概是这样。。没验证。。
作者: 曹满林    时间: 2013-8-14 16:28
string reg="1[3458]\\d{4}(\\d)\\1{4}"或是"1[3458][0-9]{4}([0-9])\\1{4}"
作者: 曹满林    时间: 2013-8-14 16:29
曹满林 发表于 2013-8-14 16:28
string reg="1[3458]\\d{4}(\\d)\\1{4}"或是"1[3458][0-9]{4}([0-9])\\1{4}"

呀,和楼上差不多,没看见,不是故意多发表一条的!
作者: 施大勇    时间: 2013-8-17 18:20
"1[3458]\\d{4}(\\d)\\1{4}"
楼上说的都很好啦,我呢解释一下啦。借楼上的光啦:
[]中括起来的是可以选其中之一的意思,它只表示一位。[3458]表示是3或4或5或8,只能取一位。
\\d{m}括起来的m表示它前面的\\d(数字)有m位。{m,n}表示m--n,包含m ,不包含n。
(\\d)用括号括起来表示它是一个组,后面的\\1表示反向引用前面的组,自定义的组是从1开始的,所以用\\1引用。
(\\d)\\1{4}合起业就是任意字母出现5次。





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