re.sub怎么做到替换多行?
- Python code
import res = """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