手机靓号如何用正则表达式表示?
作者:卡卷网发布时间:2024-12-09 14:09浏览数量:97次评论数量:0次
中国的手机号码都是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}
在手机号前面,可能还有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])"); //右边不能有数字
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:目前,有哪些流行的AI工具?
- 下一篇:淘宝上几百块钱的小程序靠谱吗?
相关推荐

你 发表评论:
欢迎