防止数学符号和HTML代码之间的冲突

时间:2016-06-15 21:47:30

标签: python html

我想用数学出版物来呈现文本,偶尔我会得到像

这样的东西
O(1/N_f) Corrections to the Thirring Model in 2<d<4<

最后一部分将被误解为html。我必须将此文本直接粘贴到允许html的网站上。我需要允许html的原因是我使用elasticsearch并且我想突出显示搜索结果(elasticsearch在文本中添加标签)。所以不能只是阻止html对文本的解释。

但是,我可以预处理文本以防止任何冲突。例如,使用

可以避免所有冲突
text.replace('<', " < ")
在python中

。然而,这远非最佳 它即使在不需要时也会引入空间 它只能解释数学符号和html之间的这种特殊碰撞 既然我认为我不是第一个遇到这种情况的人,我想知道这个问题是否有一般解决方案?

2 个答案:

答案 0 :(得分:3)

使用xml.sax.saxutils.escape功能:

import xml.sax.saxutils
escaped = xml.sax.saxutils.escape(text)

这将是Escape&#39;&#39;,&#39;&lt;&#;&#39;和&#39;&gt;&#39;在文本字符串中。

答案 1 :(得分:0)

HTML有几个具有特殊含义的字符(包括尖括号),并且通常也用ASCII表示,因此需要一种表示这些类型的特殊字符的好方法。

在HTML中,转义序列用于表示它们。例如,&字符由命名的转义序列&amp;或数字转义序列&#38;表示。只有最常见的特殊字符才能命名转义序列。

这是一个good序列列表。