在字符串中匹配指定的文本模式並替換函數
對於簡單的字面模式,直接使用 str.replace() 方法便可,好比:spa
text = 'yeah, but no, but yeah, but no, but yeah' print(text.replace('yeah', 'yep')) yep, but no, but yep, but no, but yep
對於複雜的匹配,須要使用 re 模塊中的 sub()
函數。 好比: 將11/27/2012 的日期字符串改爲 2012-11-27 。示例以下:code
import re text = 'Today is 11/27/2018. PyCon starts 3/13/2018.' print(re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', text)) Today is 2018-11-27. PyCon starts 2018-3-13.
sub()
函數中的第一個參數是匹配模式,第二個參數是替換模式。反斜槓數字指向匹配模式中的分組號。字符串
若是除了替換後的結果外,還想知道替換了多少次,可使用 re.subn()
來代替。好比:import
new_text, n = re.subn(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', text) print(new_text) print(n) Today is 2018-11-27. PyCon starts 2018-3-13. 2