Python 使用正则 re.sub 做字符串复杂替换
目录
re.sub 语法
re.sub(pattern, repl, string, count=0, flags=0)
参数:^Ref
pattern
匹配模式
repl
匹配处将被替换成的文本
string
待替换的原文
count
限制替换数量
flags
:
- re.IGNORECASE
忽略大小写
等同 str.replace()
的替换用法
举例:XnodeweeY
–> X toulan.fun Y
import re
s = "XnodeweeY"
r = re.sub('nodewee', ' toulan.fun ', s)
print(r) # X toulan.fun Y
删掉多余空白字符
re.sub(r'\s+?(\S)', r' \1', text)
例如从网页中获取的文本中可能包含长短不一的空白字符串,使用此替换方法,每个位置仅保留1个空白字符。
匹配内容处插入新内容
举例:1a2b3c
-> 1_a_2_b_3_c_
import re
s = "1a2b3c"
r = re.sub(r'([a-z])', r'_\1_', s)
print(r) # 1_a_2_b_3_c_
匹配内容的位置调换
举例:AandX,BorY,CnotZ
-> XandA,YorB,ZnotC
import re
s = 'AandX,BorY,CnotZ'
r = re.sub(r'(\[A-Z\]+)(\[a-z\]+)(\[A-Z\]+)', r'\\3\\2\\1', s)
print(r)