テキスト抽出を行うために、Django を介して BeautifulSoup を使用しようとしています。理解できない以下に至る奇妙なバグがあります。
標準の Python プロンプトで次を発行すると、次のようになります。
import re
print re.match("&#([0-9]+)[^0-9]","»")
期待どおり、 の出力が得られますNone
。しかし、このコードを sgmllib.py (Django が Web サイト経由で長い一連の呼び出しを通じて最終的に呼び出します) に入れると、Pythonはこれにうまく一致し、オブジェクトを返します。Django が何らかの理由で上記の文字列を無視しているように見えx
ます。これはユニコード設定などに関連していると思いますが、バニラの Python 2.6 セッションでこのコードを自分で実行した場合とは対照的に、なぜ Django の実行が異なるのかを理解できないようです。
上記の正規表現は、通常の実行では一致しないのに、Django で試してみると一致するのはなぜですか?