当前位置:首页 >> 每日看点 >> 手机靓号如何用正则表达式表示?

手机靓号如何用正则表达式表示?

卡卷网 每日看点 137

手机靓号如何用正则表达式表示?  第1张

中国的手机号码都是11位数字,所以,最简单的表达式就是:


[0-9]{11}


不过,目前手机号第1位都是1,第2位取值为3、4、5、7、8之一,所以更精确的表达式是:


1[34578][0-9]{9}


为方便表达手机号,手机号中间经常有连字符(即减号'-'),形如:


186-1234-5678


为表达这种可选的连字符,表达式可以改为:


1[34578][0-9]-?[0-9]{4}-?[0-9]{4}

手机靓号如何用正则表达式表示?  第2张


在手机号前面,可能还有0、+86或0086,和手机号码之间可能还有一个空格,比如:


018612345678 +86 18612345678 0086 18612345678


为表达这种形式,可以在号码前加如下表达式:


((0|\+86|0086)\s?)?

和邮编类似,如果为了抽取,也要在左右加环视边界匹配,左右不能是数字。所以,完整的表达式为:


(?<![0-9])((0|\+86|0086)\s?)?1[34578][0-9]-?[0-9]{4}-?[0-9]{4}(?![0-9])


用Java表示的代码为:


public static Pattern MOBILE_PHONE_PATTERN = Pattern.compile( "(?<![0-9])" //左边不能有数字 + "((0|\\+86|0086)\\s?)?" // 0 +86 0086 + "1[34578][0-9]-?[0-9]{4}-?[0-9]{4}" // 186-1234-5678 + "(?![0-9])"); //右边不能有数字

手机靓号如何用正则表达式表示?  第3张

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。
最新文章
热门文章
随机文章