需要帮助来构建正则表达式以在长字符串中添加“\ n”

时间:2012-02-20 21:38:42

标签: python regex django

我对正则表达式不是很熟悉,我需要在一个长字符串中插入几个'\ n'来使它成为多行并且更具可读性。规则很简单:在以下段落中:

  

Aardvark Topsites是一款流行的免费PHP Topsites脚本。多   在允许远程的产品中发现了漏洞   攻击者披露有关服务器的敏感信息   注入恶意SQL语句。解决方案:升级到4.1.1版   或者更新。

每当我看到一个点。和冒号:,我想在点后面插入'\ n',这样点后面的内容就可以成为另一个段落。理想情况下,更改后的上述示例如下所示:

  

Aardvark Topsites是一款流行的免费PHP Topsites脚本。多   在允许远程的产品中发现了漏洞   攻击者披露有关服务器的敏感信息   注入恶意SQL语句   解决方案:升级到4.1.1版   或者更新。

此字符串从数据库中检索并最终在django模板上呈现。我的问题是:我应该在哪个django处理这个问题?我怎样才能做到这一点?除了正则表达式之外还有其他方法可以解决这个问题吗?感谢。

2 个答案:

答案 0 :(得分:2)

在点和冒号之后插入'\ n'的正则表达式是非常危险的,只要想想你的版本字符串会发生什么!

这可能会有所帮助: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#linebreaks

Django有一些工具可以轻松应对换行。

答案 1 :(得分:0)

尝试:

wrapped = re.sub(r'(.{60,}?[.:])\s+', r'\1\n', text.strip())

“60”是所需的平均段落长度