我一直在唬弄的頭髮30分鐘這樣一個團...正則表達式來代替%變量%
我有一本字典,像這樣:
{'search': 'replace',
'foo': 'bar'}
和一個字符串像這樣的:
Foo bar %foo% % search %.
我想替換每個變量,它從字典相當於文本:
Foo bar bar replace.
我現在正則表達式失敗,所以這裏是(key
和value
來自dictionary.items()
):
re.sub(r'%\d+' + key + '[^%]\d+%', value, text)
任何幫助,將不勝感激,因爲這正則表達式的東西我發瘋...
我不知道'%d'的東西可能需要變量名稱。謝謝。我可以做一個盲目的搜索和替換,但我也想佔空白(這就是爲什麼我嘗試正則表達式)。我會繼續擺弄它... – Blender 2011-06-01 19:57:41
再次想到,'%'會很麻煩。我想我也會使用括號,因爲它更容易實施並且運作良好。任何方法我可以在最後省略'd'?我將它用於模板引擎,因此語法越簡單越好。 – Blender 2011-06-01 20:00:30
您的替代方案無法正常工作。它可以做不想要的雙重內插。例如'{'foo':'%bar%','bar':'baz'}'。 @ murgatroid99的解決方案不受這個問題的影響。 – ikegami 2011-06-01 21:20:05