我在python脚本中有一些字符串,它们看起来像
<tag1> thisIsSomeText <otherTag>, <tag1>!
我想解析这些行,并用字典中的字符串替换每个标记。
假设我的dict看起来像:
tag1: Hello
otherTag: Goodbye
然后输出行应如下所示:
Hello thisIsSomeText Goodbye, Hello!
可以看出,标签(及其大括号)已被替换。多次出现是可能的。
在C中,我会搜索'&lt;',记住它的位置,搜索'&gt;',做一些难看的字符串操作...... 但我想,Python有更好的解决方案。
也许正则表达式?好吧,我希望我的任务很简单,我可以在没有正则表达式的情况下解决。但我没有计划如何从Python开始。有什么建议吗?
答案 0 :(得分:4)
re.sub
不仅接受字符串,还接受作为第二个参数的替换函数。该函数接受匹配对象,函数的返回值用作替换字符串。
>>> import re
>>> mapping = {'tag1': 'Hello', 'otherTag': 'Goodbye'}
>>> re.sub(r'<(\w+)>', lambda m: mapping[m.group(1)],
... '<tag1> thisIsSomeText <otherTag>, <tag1>!')
'Hello thisIsSomeText Goodbye, Hello!'
答案 1 :(得分:0)
for i in dictionary.keys():
string.replace('<'+i+'>',dictionary[i]]