python 写一个函数 输入文本 过滤去除文本中的手机号码 座机号码以及 03-3239-061或03-3239061 0120-380-688类似的号码
以下是用正则表达式实现的代码:
def filter_phone(text):
# 匹配日本手机号码格式
pattern_phone = r'\d{2,4}-\d{2,4}-\d{4}'
# 匹配日本座机号码格式
pattern_tel = r'\d{1,4}-\d{1,4}-\d{4}'
pattern_tel2=r'0\d{2,3}-?\d{7,8}'
tel=r'1[3456789]\d{9}'
# 匹配日本特殊号码格式
pattern_special = r'(0120|0570|0800)-\d{3}-\d{3}'
pattern_special3 = r'\d{2,4}-\d{2,4}-\d{3}'
pattern_special4 = r'\d{2,4}-\d{7}'
pattern = '|'.join([pattern_phone, pattern_tel, pattern_special,tel,pattern_tel2,pattern_special3,pattern_special4])
# 将匹配到的号码替换为 ''
text = re.sub(pattern, '', text)
return text
```
简单解释一下代码:
首先定义了三个正则表达式分别用于匹配日本手机号码格式,座机号码格式以及特殊号码格式。然后将三个正则表达式组合到一起,使用 re.sub() 函数将文本中匹配到的号码替换为空字符串。最后返回过滤后的文本。
(本文内容根据网络资料整理和来自用户投稿,出于传递更多信息之目的,不代表本站其观点和立场。也不对其真实性、可靠性承担任何法律责任,特此声明!)
发表评论 取消回复