在python中,u字符出现在正则表达式中

2024-09-30 14:17:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些代码行从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']]

有人知道如何避免那个角色出现吗?你知道吗

提前谢谢


Tags: 文件代码inforpdf电子邮件地址local
3条回答

这些是unicode strings,你不需要避免它们,除非你有一些真正的问题。你知道吗

正如其他人所指出的,这不是一个bug,而是一个特性。你知道吗

如果您想要的是非unicode编码的字符串,那么可以将文本从unicode转换为更容易接受的格式。本问答涵盖以下主题:

Convert a Unicode string to a string in Python (containing extra symbols)

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

该链接的示例解决方案:

>>> a=u'aaa'
>>> a
u'aaa'
>>> a.encode('ascii','ignore')
'aaa'
>>> a.encode('utf8','ignore')
'aaa'
>>> str(a)
'aaa'
>>> 

那不是问题。在字符串前面加u表示它是Python unicode字符串。See this documentation.除非你对它们做了什么疯狂的事情,因为某种原因需要你的字符串不是unicode,否则我不认为这会是一个问题。你知道吗

相关问题 更多 >

    热门问题