2016-11-08 11 views
0

私は、プロパティシートでマクロを使用してPython正規表現置換を実践しています。しかし、私のテスト文字列内のマクロが置換されていないようですPython:正規表現全体のパターン置換

config_regex = re.compile(r'$(Configuration)') 
test_str = r'<Import Project="$(SolutionDir)\PropertySheets\Optimization.$(Configuration).props" />' 
print config_regex.sub(r'Release', test_str) 

:ブルートフォースように は、私のような何かをやっています。それでも印刷されます:

<Import Project="$(SolutionDir)\PropertySheets\Optimization.$(Configuration).props" /> 

少しお手伝いください。ありがとう。

+0

なぜ正規表現を使うのですか?とにかく、 '$'、 '('と ')は特別な正規表現のメタキャラクタなのでエスケープする必要があります。 –

+0

'config_regex = re.compile(r" \ $ \(Configuration \) ")' –

答えて

0

EDIT:正規表現が$で始まる場合、それは、括弧はEXPで特別な意味を持つ

また、文字列の開始終わりに一致しようとします (ティムさんのコメントが正しい)(キャプチャ)

これらの文字の前に\を入力するか、reモジュールのエスケープ関数を使用してください。

+0

'$'は正規表現のメタ文字をエスケープするために二重引用符で囲む必要があります。 – Tim