変数に複数行の文字列があり、私はtest v1.0
をupside
に置き換えようとしていますが、問題は全行それは私がre.sub
を使用して交換するパターンとして'\^test v1.0\$'
を入れてみました最初test v1.0.1
Python - 文字列変数の正規表現部分文字列を検索して置き換えます
pkgLogExtract = dedent("""
test v1.0.1
nothing
test v1.0
out
in
flip
""")
print (re.sub(r'\^test v1.0\$', "upside", pkgLogExtract, 1))
を置き換えるべきではありませんが、それは何を置き換えるものではありませんので、パターンに一致します。私もrawフラグで試してみました。だからr'\^test v1.0\$'
でも、何も置き換えません。私が何をすることができるか考えてみませんか?
'\ ^'はリテラル '^'と一致します。同じことが '$'についてです。あなたは 're.sub'に' flags = re.M'を渡し、 '^'と '$'からバックスラッシュを削除する必要があります。そして、 '.'を脱出する。 http://ideone.com/ijPIraを参照してください。 –
'your_string.replace(" test v1.0 \ n "、" upside ")は脆すぎますか? – jDo
@jDoすべての状況で 'replace'が動作することを100%保証することができなかったので、正規表現を選択しました(上記のスクリプトは疑似コードです)。 – TheGirrafish