一、基礎概念
Python 中的 re.compile() 方法是將正則表達式編譯成一個對象,這樣可以增加代碼的重用性,方便後續的操作。re.compile() 方法返回的是一個正則表達式對象,可以調用它的方法來對文本進行匹配操作。
二、函數語法和參數
re.compile(pattern, flags=0)
pattern: 正則表達式
flags: 可選的匹配模式,使用 | 連接多個模式,如 re.I | re.M。具體參數含義參考下面的小標題。
三、匹配模式
1. re.I(re.IGNORECASE)
忽略大小寫,即在匹配時不區分字母的大小寫。例如,表達式 [A-Z] 匹配小寫字母同樣匹配大寫字母。
2. re.M(MULTILINE)
多行模式,即將每一行看作一個單獨的字符串,^ 匹配行的開頭,$ 匹配行的結尾。
3. re.S(DOTALL)
單行模式,即將整個文本看作一個字符串,. 匹配任意字符,包括換行符。
4. re.X(VERBOSE)
詳細模式,即忽略正則表達式中的空白符(除了字符類中的空格)和注釋,使得正則表達式更加易讀。
5. re.U(REUNICODE)
Unicode模式,用於處理Unicode字符,例如 \u0020 表示空格。
四、正則表達式對象的方法
1. search()
re_obj.search(string, pos=0, endpos=0)
在指定的字符串中查找匹配項,並返回一個MatchObject對象,如果沒有找到匹配項,則返回None。
2. match()
re_obj.match(string, pos=0, endpos=0)
從字符串開始處匹配,如果匹配的話,則返回一個MatchObject對象,如果沒有找到匹配項,則返回None。
3. findall()
re_obj.findall(string, pos=0, endpos=0)
查找字符串中所有滿足正則表達式的子串,以列表的形式返回。
4. finditer()
re_obj.finditer(string, pos=0, endpos=0)
查找字符串中所有滿足正則表達式的子串,以迭代器的形式返回。
五、完整示例代碼
import re # 將正則表達式編譯成對象 re_obj = re.compile(r'hello', re.I) # 在字符串中查找匹配項 match_res = re_obj.search('Hello, world!') if match_res: print(match_res.group()) # 查找字符串中所有滿足正則表達式的子串 findall_res = re_obj.findall('Hello, hello, Hello, world!') print(findall_res) # 查找字符串中所有滿足正則表達式的子串,以迭代器的形式返回 finditer_res = re_obj.finditer('Hello, hello, Hello, world!') for match_res in finditer_res: print(match_res)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/286304.html