麻烦让re.sub匹配换行符和任何字符

时间:2015-04-21 01:07:59

标签: python regex

如何让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没有标记。

1 个答案:

答案 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#")。