十、正則替換


正則替換

正則表達式作用就是用來對字符串進行檢索和替換

檢索:match、search、fullmatch、finditer、findall

替換:sub

sub

  1. 語法:
import re
re.sub(參數1,參數2,參數3)
1.參數1:正則規則
2.參數2:作為替換的字符串或者一個函數
3.參數3:被檢索字符串
  1. 案例:
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM