2015-10-20 81 views
2

我試圖從Python中的字符串中提取一個字,該字符串的每一邊都填充了%%,並將其替換爲基於子串。 事情是這樣的:提取以字符開頭和結尾的子字符串,並用Python中的變量替換

name1 = "Alice" 
name2 = "Bob" 
date = datetime.datetime.now() 

input = "Hi, my name is %%name1%%. Today is %%date%%" 
output = ##Find and Replace Line Here 
print output 

這將導致"Hi, my name is Bob. Today is 2015-10-19 23:07:17.342105"

我發現replace()方法,我只能夠找到並與預設值替換整個字符串,像這樣:

print input.replace("%%name0%%", "name1") 

有沒有辦法之前,首先提取一子的價值取代它?

回答

2

你不會只是使用python的格式字符串替換的原因?

>>> args = { 
...  'name1': "Alice", 
...  'name2': "Bob", 
...  'date': datetime.datetime.now() 
... } 
>>> print "Hi, my name is {name1}. Today is {date}".format(**args) 
Hi, my name is Alice. Today is 2015-10-20 01:21:36.020427 

你總是可以映射到%%name1%%{name1}上面做,如果你必須使用%%name1%%

+0

這是安全的,不受信任的用戶輸入使用從網上?用戶可以通過命令嗎? – TheInnerParty

+0

從它的安全性來看,這純粹是字符串替換,它們可以在'args'字典中替換任何字符串。 – AChampion

相關問題