尝试使用正则表达式删除python中的字符EM DASH“ - ”( - )

时间:2015-11-26 04:45:01

标签: python regex

我有这个顽固的EM DASH角色,我正试图用正则表达式删除,但由于某种原因我无法让它工作。这是我正在使用的代码。

editedSource = re.sub(r'\u2014','',str(source))

我在这里做错了什么?我很确定我得到了正确的字符代码。这是角色:

  

-

它显示为

  

€”

谢谢!

3 个答案:

答案 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))