使用re.sub()查找和替换多个字符串

时间:2019-04-30 02:02:40

标签: python python-3.x

我正在尝试使用re.sub()替换模板中的多个字符串。模板是:

A message from the leasing office:
Hello <<firstName>> <<lastName>>,
Please pay your balance of <<balance>> before <<date>>. 

分别用变量<<firstName>>, <<lastName>>, <<balance>>, and <<date>>替换first_name, last_name, balance, date的位置。

我完全不知道如何搜索要替换的特定零件。这就是我所知道的:

for line in template_file:
line = re.sub(r'<<firsName>>', first_name, line)

这显然行不通,但是我迷失了从这里往哪个方向走。

1 个答案:

答案 0 :(得分:0)

也许是这样?

template_dict = {
    'firstName': first_name,
    'lastName': last_name,
    'balance': balance,
    'date': date
}

for line in template_file:
    for variable_name in template_dict:
        line = line.replace('<<{0}>>'.format(variable_name), template_dict[variable_name])
    print(line)

如果您可以重命名变量,则可以使用其他数据结构,您可以在模板文件中直接使用变量的实际名称。