-6

我有几行代码可以从 pdf 文件中提取电子邮件地址。

 for page in pdf.pages:
      pdf = page.extractText()
      # print elpdf
      r = re.compile(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4}')
      results = r.findall(pdf)
      Listemail.append(results)
      print(Listemail[0:])
 pdf.stream.close()

不幸的是,在运行代码后,我注意到结果并不完全好,因为每次找到匹配项时它都会出现一个 'u' 字符:

[[u'testuser1@training.local']]
[[u'testuser2@training.local']]

有人知道如何避免该角色出现吗?

提前致谢

4

3 回答 3

1

这不是问题。u前面的字符串只是表明它是一个 Python字符串unicode请参阅本文档。除非您对他们做任何疯狂的事情,出于某种原因要求您的字符串不是 unicode,否则我不明白这可能是一个问题。

于 2013-04-04T22:56:04.280 回答
0

这些是unicode 字符串,除非你有一些真正的问题,否则你不需要避免它们。

于 2013-04-04T22:55:53.237 回答
0

正如其他人所指出的,这不是错误,而是一项功能。

如果您想要的是非 unicode 编码的字符串,您可以将文本从 unicode 转换为更可口的内容。这个 StackOverflow Q/A 涵盖了这个主题:

将 Unicode 字符串转换为 Python 中的字符串(包含额外符号)

我之前遇到过这种情况,在某些用例中,它可能会出现问题,因为您随后会遇到方法需要非 unicode 字符串并中断的问题。:)

该链接的示例解决方案:

>>> a=u'aaa'
>>> a
u'aaa'
>>> a.encode('ascii','ignore')
'aaa'
>>> a.encode('utf8','ignore')
'aaa'
>>> str(a)
'aaa'
>>> 
于 2013-04-05T00:07:02.840 回答