最近,我尝试了一些代码,如果输入了特定的语法,就应该创建html链接。但是,所产生的行为与预期的行为相差甚远:
输入:
string = u"[id: 196]"
代码
reg = re.compile("(\[id:\s*(\d+)\])")
matches = re.findall(reg, string)
for match in matches:
entry = object_pool.find(int(match[1])) // Just returns an object (already tested)
string = re.sub(match[0], "<a href='/search#?id=%s?'>%s</a>" % (entry.id, entry.name), string)
我希望有以下几点:
<a href='/search#?id=196'>Production line n°4</a>
实际产量为n°4生产线,n°4生产线。
[<a href='/search#?id=196'>Production line n°4</a><a href='/search#?id=196'>Production line n°4</a><a href='/search#?id=196'>Production line n°4</a><a href='/search#?id=196'>Production line n°4</a><a href='/search#?id=196'>Production line n°4</a><a href='/search#?id=196'>Production line n°4</a>]
有什么我不明白的吗?我是不是不小心打破了编程法则,让巨蟒在死亡的循环中吃了自己的尾巴?我应该被判死刑吗?任何帮助都将不胜感激。
发布于 2018-04-16 13:09:05
据我理解,您不需要使用re.sub
,因为在match[0]
中没有替代品。
试试这个:
reg = re.compile("(\[id:\s*(\d+)\])")
matches = re.findall(reg, string)
for match in matches:
entry = object_pool.find(int(match[1]))
url = "<a href='/search#?id=%s?'>%s</a>" % (entry.id, entry.name)
https://stackoverflow.com/questions/49857457
复制相似问题