如何让re.sub
匹配换行符和任何字符。
福克斯的例子,我试过
re.sub('(?<================ K# 1 ===============)([.*\n]?)(?===================================================)', 'test', bc)
仅获得
'=============== K # 1 ===============test\nme\nhere==================================================\n'
其中bc
是
'=============== K # 1 ===============test\nme\nhere==================================================\n'
当我真的想用test\nme\nhere
替换整个test
字符串时。
希望
'=============== K # 1 ===============test==================================================\n'
我是否在概念上理解错误。我也试过re.DOTALL
,但我相信re.sub
没有标记。
答案 0 :(得分:2)
我也试过
re.DOTALL
,但我相信re.sub
没有标记。
你认为错了:)
bc = '== K# 1 ==test\nme\nhere==='
print re.sub('(?<== K# 1 ==)(.*?)(?==)', 'test', bc, 0, re.DOTALL)
# == K# 1 ==test===
# OR
print re.sub('(?<== K# 1 ==)(.*?)(?==)', 'test', bc, flags=re.DOTALL)
# == K# 1 ==test===
另请注意,bc
("K #"
)中有空格,但模式中没有空格("K#"
)。