一、正則表達式的概念
正則表達式是指描述字符模式的表示方法,用於匹配、搜索、替換某些字符或字符串。
在Python中,可以使用re模塊來進行正則表達式操作。
import re # 在字符串中匹配一個單詞 txt = "Hello World" x = re.search("World", txt) print(x)
運行上述代碼,可以得到輸出結果:
re.search()方法可以在字符串中搜索指定的模式,並返回第一個匹配項。
二、正則表達式語法
正則表達式的語法很靈活,可以根據需要進行組合使用。
以下是一些常用的正則表達式語法:
.
:匹配任意單個字符,除了換行符。\d
:匹配數字字符。\w
:匹配字母、數字或下劃線字符。\b
:匹配單詞邊界。*
:匹配前一個字符零次或多次。+
:匹配前一個字符一次或多次。?
:匹配前一個字符零次或一次。{n}
:匹配前一個字符恰好n次。{n,}
:匹配前一個字符至少n次。{n,m}
:匹配前一個字符至少n次,但不超過m次。|
:或者。()
:分組。[]
:字符集。
三、正則表達式示例
下面給出一些常見的正則表達式示例
1、匹配電子郵箱:
import re txt = "我的郵箱是123@qq.com,你的郵箱是abc@163.com嗎?" x = re.findall("\w+@\w+\.[a-z]{2,3}", txt) print(x)
輸出結果為:
['123@qq.com', 'abc@163.com']
2、匹配電話號碼:
import re txt = "我的電話是13812345678,你的電話是13987654321嗎?" x = re.findall("1\d{10}", txt) print(x)
輸出結果為:
['13812345678', '13987654321']
3、匹配IP地址:
import re txt = "我的IP地址是192.168.1.1,你的IP地址是10.0.0.1嗎?" x = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", txt) print(x)
輸出結果為:
['192.168.1.1', '10.0.0.1']
四、正則表達式函數
Python中的re模塊提供了多個函數來執行各種正則表達式操作。
以下是一些常用的正則表達式函數:
re.findall()
:搜索字符串,以列表形式返回匹配項。re.search()
:搜索字符串,返回第一個匹配項。re.sub()
:替換字符串中的匹配項。re.split()
:在匹配項處分割字符串。
五、使用正則表達式進行爬蟲
正則表達式在網頁爬蟲中也是非常有用的。
以下是一個使用正則表達式進行爬蟲的示例代碼:
import re import requests # 獲取頁面源代碼 url = "http://www.baidu.com" response = requests.get(url) html = response.text # 進行匹配 pattern = '(.*?) ' title = re.findall(pattern, html) # 輸出匹配到的結果 print(title[0])
該代碼可以獲取百度首頁的標題。
六、總結
正則表達式是一個非常強大的工具,可以用來進行字符串匹配、搜索、替換等操作。
Python中的re模塊提供了各種正則表達式函數,可以方便地進行正則表達式操作。
在爬蟲等實際應用場景中,正則表達式也是非常有用的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/312006.html