我正在使用Python从文件中解析文本。 我需要将所有换行符替换为<br />
。 我尝试了以下代码:
thatLine.replace('\n', '<br />')
print thatLine
但是我仍然看到了带有换行符的文本。为什么?
thatLine = thatLine.replace('\n', '<br />')
只是为了好玩,你也可以这样做
mytext = "<br />".join(mytext.split("\n"))
将字符串中的所有换行符替换为<br />
。
由于某种原因,我在使用Python3时不得不转义"\ "符号。
somestring.replace('\\n', '')
希望这能帮助到其他人!
为了处理包括字符组合如 \r\n
在内的多个换行符分隔符,使用 splitlines (参见 这篇相关文章)使用以下代码:
'<br />'.join(thatLine.splitlines())
thatLine = thatLine.replace('\n', '<br />')
Python中的字符串是不可变的。你可能需要使用赋值运算符重新创建它。
如果字符串中包含<
、>
或&
等字符,可能会出现问题。可以将其传递给cgi.escape()
来处理。
http://docs.python.org/library/cgi.html?highlight=cgi#cgi.escape
replace()
函数中使用'\n'
时,'\n'
被视为一个由' \ n'
组成、长度为4的字符串。例如:
newLine = chr(10)
thatLine=thatLine.replace(newLine , '<br />')
打印(thatLine) #Python3
print thatLine #Python2
.
<br />
替换换行符并没有达到我所需的效果。它只是将它们作为文本文字逐字呈现。{% autoescape false %}{{ mystring }}{% endautoescape %}
,这很好用,但如果你有用户提供的内容,那就不行了。所以这对我也不是一个解决方案。newvar = mystring.split('\n')
newvar
传递到我的Jinja模板中:{% for line in newvar %}
<br />{{ line }}
{% endfor %}
如果你想把字符串中的/n替换成</br>
,我猜测你是想在HTML视图中解析换行符。
word-break: break-all,
white-space: pre-wrap;
div/container
中,可以解决您的问题,而无需进行任何字符串操作。text_to_split = r'Hello\n\n I am a test.'
split_text = text_to_split.replace('\\n', '\n')
首先需要对示例文本中的反斜杠进行转义,然后在替换文本中不进行转义,这样就可以生成一个新行。