专业编程基础技术教程

网站首页 > 基础教程 正文

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

ccvgpt 2025-03-30 14:40:33 基础教程 9 ℃

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

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

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

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']

最近发表
标签列表