卡卷网
当前位置:卡卷网 / 每日看点 / 正文

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

作者:卡卷网发布时间:2024-12-09 14:09浏览数量:97次评论数量:0次

手机靓号如何用正则表达式表示?  第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张

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码