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() 函数将文本中匹配到的号码替换为空字符串。最后返回过滤后的文本。
发表评论 取消回复