くだすれPython(超初心者用)at TECH
くだすれPython(超初心者用) - 暇つぶし2ch355:デフォルトの名無しさん
08/05/18 00:43:55
>>334
普通は実体参照だけを文字に戻すことはしないからそういう機能はないんじゃないかな。
334さんの用途に合うなら以下のように安直に実装するのが手っ取り早いかと。
.subn() の代わりに .sub() を使うのも可。

# -*- coding: sjis -*-
import re, htmlentitydefs
re_ref = re.compile("&([a-zA-Z0-9]+|#x[a-fA-F0-9]+|#[0-9]+);")
def replace(match):
t = match.group(1)
if t[:2] == "#x":
return chr(int(t[2:], 16))
elif t[0] == "#":
return chr(int(t[1:]))
try:
t = htmlentitydefs.entitydefs[t]
except KeyError:
raise ValueError, "unknown entity: " + match.group()
if t[:2] == "#x":
return chr(int(t[2:], 16))
return t
# 正常終了するテスト
print re_ref.subn(replace, "Onde a terra acaba e o mar começa.")
# 異常終了するテスト
try:
re_ref.subn(replace, "&foo;")
except ValueError, e:
print e


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch