Python模式替换

时间:2013-03-12 06:14:02

标签: python

也许模式替换不是正确的词,但我不知道还有什么可以称之为。我想采取一个字符串,如“我的名字是名称,我是年龄岁”或其他什么,并以实际方式填写值。什么是最好的方法(再次,在python中)

4 个答案:

答案 0 :(得分:3)

你想要string formatting

你从这样的字符串开始:

s = 'Hi my name is {name} and I am {age} years old'

现在,您可以使用str.format方法“填写值”。

>>> s.format(name='John', age=42)
Hi my name is John and I am 42 years old

这样做是用给定的材料替换大括号({})中的东西。

请注意,此方法优于使用%运算符进行格式化,并且是Python 3中的标准。

答案 1 :(得分:2)

试试这个:

name, age = 'Art', 20

myStr = "hi my name is {0} and I am a {1} years old" 

print myStr.format(name, age)

或者:

myStr = "hi my name is %(name)s and I am a %(age)i years old" 
print myStr % {'name': name, 'age': age}

或者:

myStr = "hi my name is %s and I am a %i years old" 
print myStr % (name, age)

Read more on string formatting within python docs.

答案 2 :(得分:0)

你可以看看python re http://docs.python.org/2/library/re.html

>>> import re
>>> thing = "hi my name is placeholder"
>>> thing = re.sub("placeholder", "Fred", thing)
>>> thing
"hi my name is Fred"

答案 3 :(得分:0)

以上所有答案都是有效的。 现在我使用字符串模板提供方法。

from string import Template
s = Template("hi my name is ${name} and I am ${age} years old")
s.substitute(name='Bill', age=24)
# 'hi my name is Bill and I am 24 years old'

您可能希望使用相关方法 safe_substitute ,并找到更多here