regex 使用Python正则表达式添加HTML换行符

4sup72z8  于 2022-12-14  发布在  Python
关注(0)|答案(1)|浏览(109)

我需要在一个字符串的所有行尾处添加HTML换行符(<br />),这些行尾后面没有空行。

body = re.sub(r'(.)\n(.)', r'\1<br />\2', body)

但是我意识到它不适用于一行只包含一个字符的边缘情况(因为这个字符必须是两个不同的重叠匹配的一部分)。所以我尝试了下面的模式和lookaround子模式:

body = re.sub(r'(?<=.)\n(?=.)', r'<br />', body)

除了HTML标记添加在换行符(\n)之后并带有一个额外的换行符之外,此操作按预期方式工作:

linebreak
<br/>
!
<br/>
linebreak
<br/>
l
<br/>
works

我希望匹配的换行符被HTML标记替换(从而有效地从所有匹配区域中删除换行符)-为什么标记反而出现在新行上(即增加换行符/行数)?
vim中的等效模式确实删除了换行符:

s:\(.\)\zs\n\ze\(.\):\<br \/\>:ge
zc0qhyus

zc0qhyus1#

这是相当尴尬的-模式/我的脚本确实工作应该。我被愚弄了一个HTML源代码查看器,它显然添加了换行符的源代码,它应该显示未经修改。对不起,占用您的宝贵时间。

相关问题