python3正则-替换和切割函数
1、介绍
这里整理sub、subn和split三个函数的使用。
2、sub函数
sub(pattern, repl, string, count=0, flags=0)
- pattern,正则表达式
- repl,替换文本
- string,待处理字符串
- count,表示替换的最大次数。默认为0表示全部替换
- flags,标志,处理模式
- 作用是在flags代表的模式下,匹配strings指向的字符串由pattern指向的规则作为子字符串,不要求开始和结尾,然后用repl文本替换全部匹配项
- 如果存在匹配,返回被替换之后的文本,返回类型为str。如果不存在匹配,则返回原字符串
示例:
import re
pattern = "abc"
result = re.sub(pattern=pattern, repl="ggg", string="-abcdefabc")
print(result)
"""
-gggdefggg
"""
print(type(result))
"""
<class 'str'>
"""
3、subn函数
subn(pattern, repl, string, count=0, flags=0)
- pattern,正则表达式
- repl,替换文本
- string,待处理字符串
- count,表示替换的最大次数。默认为0表示全部替换
- flags,标志,处理模式
- 作用是在flags代表的模式下,匹配strings指向的字符串由pattern指向的规则作为子字符串,不要求开始和结尾,然后用repl文本替换全部匹配项
- 返回一个元素个数为2的tuple,第一个元素str类型,第二个元素int类型。
- 如果不存在匹配,第一个元素是原字符串,第二个元素为0
- 如果存在匹配,第一个元素是替换后的字符串,第二个元素是实际替换次数
import re
pattern = "abc"
result = re.subn(pattern=pattern, repl="ggg", count=1, string="-abcdefabc")
print(result)
print(type(result))
"""
('-gggdefabc', 1)
<class 'tuple'>
"""
4、split函数
split(pattern, string, maxsplit=0, flags=0)
- pattern,正则表达式
- string,待处理字符串
- maxsplit,最大分割次数,默认为0表示全部分割
- flags,标志,处理模式
- 返回一个list对象,如果存在匹配,则元素是匹配切割后的子字符串。如果不存在匹配,则元素有且只有一个,是原字符串
pattern = "abc"
result = re.split(pattern=pattern, string="-abcdefabc", maxsplit=1)
print(result)
print(type(result))
"""
['-', 'defabc']
<class 'list'>
"""