簡體   English   中英

使用python 2.7 regex從電子郵件中提取電話號碼

[英]Extract phone numbers from email using python 2.7 regex

我正在嘗試從許多電子郵件文件中提取電話號碼。 我寫了正則表達式代碼來提取它們,但我得到的結果只有一種格式。

PHONERX = re.compile("(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})")

phonenumber = re.findall(PHONERX,content)

當我查看數據時,我發現有很多電話號碼格式。

如何將所有具有這些格式的電話號碼一起提取:

800-569-0123
1-866-523-4176
(324)442-9843
(212) 332-1200
713/853-5620
713 853-0357
713 837 1749

此鏈接是數據集的示例。 問題是有時電話號碼正則表達式從messageId和電子郵件中的其他號碼中提取https://www.dropbox.com/sh/pw2yfesim4ejncf/AADwdWpJJTuxaJTPfha38OdRa?dl=0

您不需要使用邏輯OR包含所有可能性。 您可以使用以下正則表達式:

(?:\(\d+\)\s?\d*|\d+)([-\/ ]\d+){1,3}

演示

要與re.findall()使用,請使用非捕獲組:

(?:\(\d+\)\s?\d*|\d+)(?:[-\/ ]\d+){1,3}

您可能想要使用:

\(?(?:1-)?\b[2-9][0-9]{2}\)?[-. \/]?[2-9][0-9]{2}[-. ]?[0-9]{4}\b

這將匹配您的所有示例+忽略誤報,例如:

113 837 1749
222 2222 22222

正則表達式演示和解釋

Python演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM