一、正則表達式:什麼是正則表達式
正則表達式(Regular Expression),簡稱「regex」,是用於處理字元串的一種工具。
正則表達式可以用來描述,匹配、搜索、替換、分割等操作。它是一種描述性的語言,可用於識別各種模式。
二、在Python中使用正則表達式
Python提供了re模塊來支持正則表達式操作。re模塊是Python標準庫中的一部分,使用時需要先導入。
import re
了解了re模塊的基礎知識後,我們可以嘗試編寫一個簡單的正則表達式,來提取電話號碼信息。
三、提取電話號碼信息的正則表達式
在中國,電話號碼的格式通常是3或4位區號,加上7或8位號碼。我們可以使用正則表達式對這種格式進行匹配,從而提取出電話號碼信息。
下面的正則表達式可以匹配中國大陸手機號碼,包括兩個格式:11位數字和12位數字(帶「+86」前綴):
phone_pattern = re.compile(r'(?:(?:\+|00)86)?1\d{10}')
該正則表達式由三個部分組成,分別是:
- (?:(?:\+|00)86)?:可選項,表示中國的國際區號,包括+86和0086兩種形式。
- 1:必選項,表示中國大陸的手機號碼都以1開頭。
- \d{10}:必選項,表示手機號碼的後10位是數字。
四、使用正則表達式提取電話號碼信息
有了正則表達式,我們就可以用它來提取電話號碼信息了。
首先,我們需要一個字元串,作為匹配的目標。假如我們有一個異常數據集,其中包含了很多電話號碼:
data = '<p>公司總機:010-88886666</p><p>張三:13911112222,李四:010-77778888</p><p>王五:+8613812345678</p>'
我們可以使用findall()函數查找出所有符合正則表達式的電話號碼:
phone_list = re.findall(phone_pattern, data)
findall()函數將返回一個列表,其中包含了所有的電話號碼信息。我們可以遍歷這個列表,逐一輸出電話號碼信息:
for phone in phone_list: print(phone)
這樣就可以輸出所有的電話號碼信息。
五、完整代碼示例
import re data = '<p>公司總機:010-88886666</p><p>張三:13911112222,李四:010-77778888</p><p>王五:+8613812345678</p>' phone_pattern = re.compile(r'(?:(?:\+|00)86)?1\d{10}') phone_list = re.findall(phone_pattern, data) for phone in phone_list: print(phone)
以上是完整的代碼示例。運行該代碼,將輸出所有的電話號碼信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312797.html