我对正则表达式不是很熟悉,我需要在一个长字符串中插入几个'\ n'来使它成为多行并且更具可读性。规则很简单:在以下段落中:
Aardvark Topsites是一款流行的免费PHP Topsites脚本。多 在允许远程的产品中发现了漏洞 攻击者披露有关服务器的敏感信息 注入恶意SQL语句。解决方案:升级到4.1.1版 或者更新。
每当我看到一个点。和冒号:,我想在点后面插入'\ n',这样点后面的内容就可以成为另一个段落。理想情况下,更改后的上述示例如下所示:
Aardvark Topsites是一款流行的免费PHP Topsites脚本。多 在允许远程的产品中发现了漏洞 攻击者披露有关服务器的敏感信息 注入恶意SQL语句 解决方案:升级到4.1.1版 或者更新。
此字符串从数据库中检索并最终在django模板上呈现。我的问题是:我应该在哪个django处理这个问题?我怎样才能做到这一点?除了正则表达式之外还有其他方法可以解决这个问题吗?感谢。
答案 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”是所需的平均段落长度