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