问题描述
我想通过邮件发送以下文本。我必须将其转换为 html,因此我必须在每行分隔符中添加
。
我怎样才能以适合我的方式做到这一点? 这是我的尝试。
text = """
Hi,my name is John,Regards
"""
strString = map(lambda x: x + '<br>',text)
print(list(strString))
['\n<br>','H<br>','i<br>',',<br>',' <br>','m<br>','y<br>','n<br>','a<br>','e<br>','s<br>','J<br>','o<br>','h<br>','\n<br>','R<br>','g<br>','r<br>','d<br>','\n<br>']
Desired output
text = """
Hi,<br>
Regards<br>
"""
text
'\nHi,<br>\nRegards<br>\n'
解决方法
您可能希望替换换行符
>>> text = """
... Hi,my name is John,... Regards
... """
>>> import re
>>> print(re.sub(r"\n","<br>\n",text))
<br>
Hi,<br>
Regards<br>
或者,您可以使用 <pre>
(preformatted text) 按原样写出文本! (虽然它确实更适用于代码块,可能不适用于其他文本)
<pre>
Hi,Regards
</pre>
正如 PacketLoss 所指出的,如果您只有一个简单的字符/子字符串要替换,则使用字符串的 .replace()
方法很好,并且可能会更好/更清晰!
如果要将所有新行 \n
替换为 <br>
,只需使用 string.replace()
print(text.replace('\n','<br>'))
#<br>Hi,<br>Regards<br>
要保留新行,只需修改您的替换值。
print(text.replace('\n','<br>\n'))
<br>
Hi,<br>
Regards<br>