我有这个顽固的EM DASH角色,我正试图用正则表达式删除,但由于某种原因我无法让它工作。这是我正在使用的代码。
editedSource = re.sub(r'\u2014','',str(source))
我在这里做错了什么?我很确定我得到了正确的字符代码。这是角色:
-
它显示为
€”
。
谢谢!
答案 0 :(得分:3)
使用u
准备结束正则表达式模式,告诉解析unicode的正则表达式引擎,不要尝试将unicode
强制转换为str
。
>>>source = u'hello\u2014world'
>>>re.sub(ur'\u2014','',source)
>>>u'helloworld'
答案 1 :(得分:1)
>>> source = u'hello\u2014world'
>>> print source
hello—world
>>> import re
>>> re.sub(u'\u2014','',source)
u'helloworld'
注意,您可以使用这样的映射更有效地删除/替换单个unicode字符
>>> source.translate({0x2014: None})
u'helloworld'
答案 2 :(得分:0)
以下代码适用于Python 3:
editedSource = re.sub('\—','',str(source))