需要RE来检测UTF-8

时间:2013-05-26 15:21:02

标签: python regex utf-8

我有以下代码

inf = codecs.open(inPath , encoding='utf-8')
outf = codecs.open(outPath, encoding='utf-8', mode='w')
old = u'’;'
new = u'’&#59;'
for line in inf:
    line = line.replace(old,new)
    asc = line.encode('ascii', 'xmlcharrefreplace')    
    outf.write(asc)
    # print asc
inf.close()
outf.close()

这(正确地)使用数字格式将智能引号和重音字符等转换为其html实体格式。它会转换

<p>Dreams like: “Someday I’ll travel to…; someday I’ll write a book;

进入

<p>Dreams like: &#8220;Someday I&#8217;ll travel to&#8230;; someday I&#8217;ll write a book; 

这都是正确的。

然而,代码进一步下游,看到中间的&#8230;;,丢弃双分号,然后抱怨它没有有效的实体。我无法更改此代码。

从我的代码中可以看出,我发现了一个实体后面跟一个分号的情况。我不想替换源中的所有分号。

如何检测跟随UTF-8字符的半冒号,其代码点&gt; 127,以便我可以用&#59;替换它?感谢。

1 个答案:

答案 0 :(得分:1)

面对掌心!

如果我先转换为htmlentites,然后将;;替换为解决我问题的;&#69;

注意自我 - 考虑你在哪里做事,以及做什么!