【问题标题】:extract every types of phone number from text file从文本文件中提取每种类型的电话号码
【发布时间】:2017-11-29 19:49:01
【问题描述】:
def extract_phone_numbers(string):
    r= re.compile("\+?\d[\( -]?\d{3}[\) -]?\d{3}[ -]?\d{2}[ -]?\d{2}")
    phone_numbers = re.findall(r, string)
    return phone_numbers

我提取 +919835089***、09835089***、9835089*** 之类的数字然后工作正常,但是当我输入 +91-9835089*** 时,它会打印 1-9835089***

【问题讨论】:

  • 您的第一个\d 就是这样。也许你的意思是\d{2}? 或类似的东西?

标签: python python-3.x web-scraping


【解决方案1】:

只需在第一个 \d 之后添加 *(一个或多个)

string = "+91983508233, 09835089456, 9835089555, +91-9835089444"
r= re.compile("\+?\d*[\( -]?\d{3}[\) -]?\d{3}[ -]?\d{2}[ -]?\d{2}")
phone_numbers = re.findall(r, string)
print(phone_numbers)

['+91983508233', ' 0983508945', ' 9835089555', '+91-9835089444']

【讨论】:

    猜你喜欢
    • 2018-05-22
    • 2014-05-16
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多