python利用正则提取字符串中的手机号

需求:利用正则提取字符串中的手机号(假设手机号为1开头的11为数字,要求手机号前后不为数字)

待提取的字符串:str=" 15838477645dfdfdf15887988765 dfdf1157990087651fd157385367891fdf15826789876qqq15838545678a"

import re

str="15838477645dfdfdf15887988765dfdf1157990087651fd157385367891fdf15826789876qqq15838545678a"

#方法一:限制手机号开头,或者手机号前面为非数字,且手机号结尾或者以非数字结尾
pattern1="(?:^|[^\d])(1\d{10})(?:$|[^\d])"

phone_list1=re.compile(pattern1).findall(str)
#结果为:['15838477645', '15887988765', '15826789876', '15838545678']

#方法二:利用负向零宽断言,断言手机号前后不能出现数字
pattern2="(?<!\d)(1\d{10})(?!\d)"
phone_list2=re.compile(pattern2).findall(str)
#结果为:['15838477645', '15887988765', '15826789876', '15838545678']
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值