正則替換
正則表達式作用就是用來對字符串進行檢索和替換
檢索:match、search、fullmatch、finditer、findall
替換:sub
sub
- 語法:
import re
re.sub(參數1,參數2,參數3)
1.參數1:正則規則
2.參數2:作為替換的字符串或者一個函數
3.參數3:被檢索字符串
- 案例:
import re
#1、 \d:對於被檢索字符串中所有匹配的字符進行替換
print(re.sub(r'\d', '張', '123456'))
#張張張張張張
#2、 \d+:將多個連續被匹配的字符替換成一個參數2的值
print(re.sub(r'\d+', '張', 'abc123d456e'))
#abc張d張e
#3、參數2使用函數替代的用法
p = ’hello34good23‘
def test1(a):
print(a)
#sub 內部在調用test1方法時,會把每個匹配到的數據以re.Match的格式傳遞給test
re.sub(r'\d',test1,p)
'''
<re.Match object; span=(5, 6), match='3'>
<re.Match object; span=(6, 7), match='4'>
<re.Match object; span=(11, 12), match='2'>
<re.Match object; span=(12, 13), match='3'>
'''
def test(a):
y = int(a.group(0))
y *= 2
return str(y) #因為p變量是個字符串,所以函數返回的值也必須是字符串類型
# 1.sub 內部在調用test方法時,會把每個匹配到的數據以re.Match的格式傳遞給test
# 2.然后test函數會將該數據進行一定操作后,return返回出來放回到變量p中對應的位置,從而實現不影響字符串中其他字符的值和位置
print(re.sub(r'\d', test, p))
#hello68good46