读书人

re.sub如何做到替换多行

发布时间: 2012-02-09 18:22:27 作者: rapoo

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 

读书人网 >perl python

热点推荐