我正在使用Python 2.7抓取一个葡萄牙语网站,我想分开括号内的拉丁文字和数字。每个文本看起来像:
text = 'Obras de revisão e recuperação (45453000-7)'
我尝试了以下代码:
#-*- coding: utf-8 -*-
import re
text = u'Obras de revisão e recuperação (45453000-7)'
re.sub(r'\([0-9-]+\)', u'', text).encode("utf8")
输出是:
'Obras de revis\xc3\xa3o e recupera\xc3\xa7\xc3\xa3o '
我也想删除括号并获得如下输出:
name = 'Obras de revisão e recuperação'
code = '45453000-7'
答案 0 :(得分:2)
应该这样工作:
档案:/tmp/foo.py
#-*- coding: utf-8 -*-
import re
text = u'Obras de revisão e recuperação (45453000-7)'
print re.sub(r'\([0-9-]+\)', u'', text)
注意,没有.encode('utf-8')
事。
现在,在python控制台中:
>>> import re
>>> text = u'Obras de revisão e recuperação (45453000-7)'
>>> re.sub(r'\([0-9-]+\)', u'', text)
u'Obras de revis\xe3o e recupera\xe7\xe3o '
>>> print re.sub(r'\([0-9-]+\)', u'', text)
Obras de revisão e recuperação
如您所见,print re.sub(..)
(又名unicode.__str__()
)与unicode.__repr__()
不会返回相同的内容。
我怀疑你正在努力解决这个问题。