替换标记内的字符串元素

时间:2016-04-21 08:42:53

标签: python

我有以下格式的几个字符串:

string = http://1.8.1.1:5000/student/<studentid>/student_details/<rollnumber>

和2个变量

x="myid"
y="myrollnumber"

我想要的是替换&lt; ...&gt;的第一个实例变量x和&lt; ....&gt;的第二个实例变量y。它不应该取决于我里面的内容&lt;&gt;标签。具有该格式的任何字符串应在其各自的位置由x和y替换。结果输出应如下所示:

string=http://1.8.1.1:5000/student/myid/student_details/myrollnumber

3 个答案:

答案 0 :(得分:2)

你可以这样做,

>>> S = 'http://1.8.1.1:5000/student/<studentid>/student_details/<rollnumber>'
>>> import re
>>> k = re.sub(r'<.*?>', '{}', S)
>>> k
'http://1.8.1.1:5000/student/{}/student_details/{}'
>>> x="myid"
>>> y="myrollnumber"
>>> k.format(x, y)
'http://1.8.1.1:5000/student/myid/student_details/myrollnumber'
>>> 

答案 1 :(得分:2)

我不确定我是否理解正确,但这可能是一个解决方案:

string = "http://1.8.1.1:5000/student/%s/student_details/%s"%(x,y)

让我们把它放在一个函数中:

def foo(studentID, rollNumber):
    string = "http://1.8.1.1:5000/student/%s/student_details/%s"%(studentID, rollNumber)
    return string

这有用吗? 让我知道......

答案 2 :(得分:0)

您可以使用replace

string = "http://1.8.1.1:5000/student/<studentid>/student_details/<rollnumber>"
x="myid"
y="myrollnumber"

newString = string.replace("<studentid>",x).replace("<rollnumber>",y)

在一个功能中:

def changeString(studentid,rollNumber):
    newString = string.replace("<studentid>",studentid).replace("<rollnumber>",rollNumber)
    return newString