用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。