我有一个带有多行字符串的变量,我试图将test v1.0
替换为upside
,但问题是我试图只在整行与模式匹配时才替换它,所以它不应该替换第一个test v1.0.1
pkgLogExtract = dedent("""
test v1.0.1
nothing
test v1.0
out
in
flip
""")
print (re.sub(r'\^test v1.0\$', "upside", pkgLogExtract, 1))
我尝试使用re.sub
并将'\^test v1.0\$'
作为要替换的模式,但它没有替换任何内容。我也用raw标志尝试过,所以r'\^test v1.0\$'
但这也不能替代任何东西。你知道我能做什么吗?在
\^
与文本^
匹配。$
也是如此。您需要将flags=re.M
传递给re.sub
,并删除{.
。在请参见IDEONE demo:
注意:我想您知道
1
代表一个替换(只有第一个匹配项会被替换)。在注2:您可以省略
flags=
而使用re.M
,但是很多人忘记使用上面提到的count
参数,所以最好将参数名保留在这里。在相关问题 更多 >
编程相关推荐