Python 使用正则 re.sub 做字符串复杂替换

re.sub(pattern, repl, string, count=0, flags=0)

参数:^Ref
pattern 匹配模式
repl 匹配处将被替换成的文本
string 待替换的原文
count 限制替换数量
flags
- re.IGNORECASE 忽略大小写

举例: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)