python3正则-替换和切割函数

发布时间 2023-04-15 12:36:26作者: 挖洞404

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'>
"""