【最新】正则表达式:识别手机号码,座机号码,400免费电话
创始人
2024-05-24 06:23:02
0

分析

目前常见的电话号码有:手机号码,座机号码,400开头的电话

手机号码

手机号码为11位,第一位一定是1,后面跟着10位号码;
例如:188xxxx6542,157xxxx5231等等。

座机号码

座机号码是由两部分组成:区号+座机号;
区号有3-4位数;
座机号有7-8位数;
例如:010-87655210,028-83387337,0371-6515835

400

400电话为10位号码组成;
例如:400-700-5606

匹配的字符串

content = """
小米  |  010-87655210  |  快递  |  18210443800  |  深圳  |  

正则表达式

手机号码

正则匹配前后限制非数字,防止随意匹配一长段数字中的部分号码

re_phone = '[^0-9](1[3-9][0-9]{9})[^0-9]'
phone_number_lt = list(set(re.findall(re_phone, content)))
phone_number_lt = [e for e in phone_number_lt if e != '']

座机号码

正则匹配前后限制非数字,防止随意匹配一长段数字中的部分号码

re_phone = '[^0-9](0[0-9]{2,3}\-[2-9][0-9]{6,7})[^0-9]'
phone_number_lt = list(set(re.findall(re_phone, content)))
phone_number_lt = [e for e in phone_number_lt if e != '']

400

正则匹配前后限制非数字,防止随意匹配一长段数字中的部分号码

re_phone = '[^0-9](400-[0-9]{3}-[0-9]{4})[^0-9]'
phone_number_lt = list(set(re.findall(re_phone, content)))
phone_number_lt = [e for e in phone_number_lt if e != '']

总结

将上述三个正则表达式整合到一块

re_phone = '[^0-9](0[0-9]{2,3}\-[2-9][0-9]{6,7}|1[3-9][0-9]{9}|400-[0-9]{3}-[0-9]{4})[^0-9]'
phone_number_lt = list(set(re.findall(re_phone, content)))
phone_number_lt = [e for e in phone_number_lt if e != '']

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...