一.sub函數
1.sub函數用於替換字符串中的匹配項
2.語法:re.sub(pattern, repl, string, count=0, flags=0)
pattern : 被替換的字符串。
repl : 替換的字符串,也可爲一個函數。
string : 要被查找替換的原始字符串。
count : 模式匹配後替換的最大次數,默認 0 表示替換所有的匹配。
3.舉例
c = 'python123java44python&C#C'
r1 = re.sub('python', 'php', c, 1)
r2 = re.sub('python', 'php', c, 2)
print(r1)
print(r2)
結果爲:
php123java44python&C#C
php123java44php&C#C
如果第二個參數傳入的爲函數,如下例:
c = 'python123java44python&C#C'
def temp(value):
# 傳入的value看上去是被替換的字符串,但實質是個對象
# group函數獲取截獲的對象代表的字符串
match = value.group()
return '---'+match+'---'
r1 = re.sub('python', temp, c)
print(r1)
結果爲:
---python---123java44---python---&C#C
二、findall函數
1.在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
2.語法:re.findall(pattern, string, flags=0):
pattern:正則表達式
string:被匹配的字符串
flags:標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫(re.l),多行匹配(re.M), 使 ‘.’ 匹配包括換行在內的所有字符(re.S)等
3.舉例
b = 'pytho0python1pythonn2'
r2 = re.findall('python', b)
print(r2)
['python', 'python']
三、match函數
1.從字符串的起始位置匹配,如果起始位置匹配未成功的話,match()就返回none。
2.語法:re.match(pattern, string, flags=0)
pattern 正則表達式
string 要匹配的字符串。
四、search函數
1.掃描整個字符串並返回第一個成功的匹配。
2.語法:re.search(pattern, string, flags=0)
pattern 匹配的正則表達式
string 要匹配的字符串。