2015-10-20 33 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

相关问题