2

非html文字をhtml文字に変換する簡単な方法はありますか? たとえば、私がそうfunction("a")すると"a"、これを行う方法を知っている唯一の方法は次のとおりです。

 def function(text):
      return text.replace('a','a')

これを行うためのより良い方法はありますか、それともこれを達成する唯一の方法は置換を使用することですか?

4

2 に答える 2

3

html.entities.codepoint2nameと の使用re.sub:

import html.entities
import re

def to_entitydef(match):
    n = ord(match.group())
    name = html.entities.codepoint2name.get(n)
    if name is None:
        return '&#{};'.format(n)
    return '&{};'.format(name)

def escape(text):
    return re.sub('.', to_entitydef, text)

例:

>>> escape('<a>')
'&lt;&#97;&gt;'
于 2013-09-16T04:45:47.177 に答える