2016-06-15 3 views
0

Я хочу представить текст из математических публикаций и каждый сейчас и потом я получаю что-то вродепредотвращение конфликтов между математическими символами и HTML кода

O(1/N_f) Corrections to the Thirring Model in 2<d<4< 

Последняя часть будет неверно истолковано как HTML. Я должен вставить этот текст прямо на веб-сайт, разрешая html. Причина, по которой мне нужно разрешить html, заключается в том, что я использую elasticsearch, и хочу выделить результаты поиска (elasticsearch помещает теги в текст). Таким образом, нельзя просто предотвратить html интерпретацию текста.

Однако я могу предварительно обработать текст, чтобы предотвратить конфликт. Например, прежде всего избегают конфликта, используя

text.replace('<', " < ") 

in python. Тем не менее, это далеко не оптимально, так как 1. Он вводит пробелы, даже если они не нужны 2. Он учитывает это конкретное столкновение между математическими символами и html Поскольку я полагаю, что я не первый человек, который сталкивается с этим я задалось вопросом, существует ли общее решение для такой проблемы?

+1

Используйте 'text.replace (" <"," < ")'. – Xufox

ответ

3

xml.sax.saxutils.escape Использование функции:

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

Это будет избежать '&', '<' и '>' в текстовой строке.

0

HTML имеет несколько символов со специальными значениями (включая угловые скобки) и также обычно представлен в ASCII, поэтому необходим хороший способ представления этих типов специальных символов.

В HTML, escape-последовательности используются для их представления. Например, символ & представлен именованной управляющей последовательностью &amp; или числовой управляющей последовательностью &#38;. Только наиболее распространенные специальные символы называются escape-последовательностями.

Описание: good Список последовательностей.

Смежные вопросы