我尝试了许多不同的东西并查看了许多 SO 答案(以及来自其他网站的东西),但我似乎无法弄清楚这一点。那里有很多相互矛盾的信息。
我有一些内容存储在 PostgreSQL 中,采用 UTF8 (SET client_encoding = 'UTF8';)。我正在从数据库中提取所述内容,然后将任何“£”符号包装在一个跨度中。
相关片段:
for i in range(0, len(results)):
content = results[i][2].decode('utf8')
pattern = re.compile(ur'(\u00A3[0-9]+)(\.[0-9]{1,2})?', re.UNICODE)
content = re.sub(pattern, '<span class="price">\0\1</span>', content)
app.logger.debug(test)
样本输出:
DEBUG in **** [****.py:143]:
Prices from only <span class="price"></span> for a framed picture.
编辑:而且我知道 REGEXP 可能很糟糕。