首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

re.sub如何做到替换多行

2012-02-09 
re.sub怎么做到替换多行?Python codeimport res ddd[AA]ff[/AA]hh[BB]GG[/BB]TT[AA]66[/AA][BB]Dd[/B

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 

热点排行