我们正在尝试通过 Django 使用 BeautifulSoup 进行一些文本提取。我们有一个奇怪的错误,我们已经追溯到以下我们不理解的错误。
如果我们在标准 Python 提示符下发出以下命令:
import re
print re.match("&#([0-9]+)[^0-9]","»")
None
正如预期的那样,我们得到 的输出。但是,当我们将此代码放入 sgmllib.py(Django 最终通过我们的网站通过一长串调用调用)时,Python确实成功地匹配了它,并返回了一个对象。在我们看来,好像 Django 以某种方式忽略x
了上面的字符串。我认为这必须与 unicode 设置有关,等等,但我们似乎无法弄清楚为什么 Django 的运行方式与我们自己在普通 Python 2.6 会话中运行此代码时不同。
为什么上面的正则表达式在正常运行时不匹配,但在 Django 尝试时匹配?