用法:
re.sub(pattern, repl, string, count=0, flags=0)
返回通過替換
repl
替換string
中最左邊的非重疊出現的pattern
獲得的字符串。如果未找到該模式,則string
原樣返回。repl
可以是字符串,也可以是函數;如果它是一個字符串,則處理其中的任何反斜杠轉義。也就是說,\n
被轉換為單個換行符,\r
被轉換為回車,等等。 ASCII 字母的未知轉義保留供將來使用並視為錯誤。其他未知的轉義例如\&
將被單獨留下。反向引用(例如\6
)被替換為模式中第 6 組匹配的子字符串。例如:>>> re.sub(r'def\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(\s*\):', ... r'static PyObject*\npy_\1(void)\n{', ... 'def myfunc():') 'static PyObject*\npy_myfunc(void)\n{'
如果
repl
是一個函數,則在pattern
的每個非重疊出現時調用它。該函數采用單個匹配對象參數,並返回替換字符串。例如:>>> def dashrepl(matchobj): ... if matchobj.group(0) == '-': return ' ' ... else: return '-' >>> re.sub('-{1,2}', dashrepl, 'pro----gram-files') 'pro--gram files' >>> re.sub(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE) 'Baked Beans & Spam'
模式可以是字符串或模式對象。
可選參數
count
是要替換的模式出現的最大數量;count
必須是非負整數。如果省略或為零,將替換所有匹配項。僅當與前一個空匹配不相鄰時,才會替換模式的空匹配,因此sub('x*', '-', 'abxd')
返回'-a-b--d-'
。在 string-type
repl
參數中,除了上述字符轉義和反向引用之外,\g<name>
將使用由名為name
的組匹配的子字符串,如(?P<name>...)
語法所定義。\g<number>
使用對應的組號;因此\g<2>
等價於\2
,但在\g<2>0
等替代品中並沒有歧義。\20
將被解釋為對第 20 組的引用,而不是對第 2 組的引用,後跟文字字符'0'
。反向引用\g<0>
替換了 RE 匹配的整個子字符串。在 3.1 版中更改:添加了可選的標誌參數。
在 3.5 版中更改:不匹配的組將替換為空字符串。
在 3.6 版中更改:未知的逃脫
pattern
包含由...組成'\'
現在一個 ASCII 字母是錯誤的。在 3.7 版中更改:未知的逃脫
repl
包含由...組成'\'
現在一個 ASCII 字母是錯誤的。在 3.7 版中更改:當與先前的非空匹配相鄰時,模式的空匹配將被替換。
相關用法
- Python re.split用法及代碼示例
- Python re.search() vs re.match()用法及代碼示例
- Python re.compile用法及代碼示例
- Python re.fullmatch()用法及代碼示例
- Python re.Match.groupdict用法及代碼示例
- Python re.Pattern.match用法及代碼示例
- Python re.Pattern.search用法及代碼示例
- Python re.Match.group用法及代碼示例
- Python re.escape用法及代碼示例
- Python Regex re.MatchObject.groups()用法及代碼示例
- Python re.Match.groups用法及代碼示例
- Python Regex re.MatchObject.groupdict()用法及代碼示例
- Python re.Match.start用法及代碼示例
- Python re.Match.__getitem__用法及代碼示例
- Python re.findall用法及代碼示例
- Python re.Pattern.fullmatch用法及代碼示例
- Python re.X用法及代碼示例
- Python Numpy recarray.tostring()用法及代碼示例
- Python reduce()用法及代碼示例
- Python response.status_code用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 re.sub。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。