re.sub

场景:re.sub如何做到替换多行

re.sub怎么做到替换多行?
Python code

import re

s = """ddd[AA]ff[/AA]hh[BB]G
    G[/BB]TT[AA]66[/AA][BB]Dd[/BB]f"""

val = re.sub(r'\[BB\](.*?)\[/BB\]', "", s)

print val

结果如下:
ddd[AA]ff[/AA]hh[BB]G
    G[/BB]TT[AA]66[/AA]f
我实际想要的是:
ddd[AA]ff[/AA]hh
    TT[AA]66[/AA]f



不知道怎么实现?


------解决方案--------------------
先将字符串用split("\n")然后再[:]可否。。
------解决方案--------------------
re.sub(pattern, repl, string[, count, flags]) 
默认.不能匹配换行,所以要设置flags=re.S,要保留回车空白等,弄个合适的函数当repl参数:
Python code
import re
    
def repl(m):
    return re.sub(r'\S', '', m.group(0))
    
s = """ddd[AA]ff[/AA]hh[BB]G
    G[/BB]TT[AA]66[/AA][BB]Dd[/BB]f"""

val = re.sub(r'\[BB\](.*?)\[/BB\]', repl, s, flags=re.S)
print val