python 27 re无法找到字符

操作系统:Windows7,64位
巨蟒27

选择 | 换行 | 行号
  1. text="""AU  - Huang, Zhipeng
  2. AU  - Geyer, Nadine
  3. AU  - Werner, Peter
  4. AU  - de Boor, Johannes
  5. AU  - Gösele, Ulrich
  6. TI  - Metal-Assisted Chemical Etching of Silicon: A Review"""
  7.  
  8. auths=re.findall('AU  \- [öÖäÄåÅa-zA-Z.,\s]+', text)
  9. print(auths)

我得到的结果是:['欧黄,志鹏','欧盖耶,纳丁','欧维尔纳,彼得','欧德
Boor,Johannes','AU-G']
巨蟒找不到"Gösele"

# 回答1


我在Python2.7.2中没有这个问题。试试这个:

选择 | 换行 | 行号
  1. # coding=utf-8
  2. import re
  3.  
  4. text="""AU  - Huang, Zhipeng
  5. AU  - Geyer, Nadine
  6. AU  - Werner, Peter
  7. AU  - de Boor, Johannes
  8. AU  - Gösele, Ulrich
  9. TI  - Metal-Assisted Chemical Etching of Silicon: A Review"""
  10.  
  11. auths=re.findall('AU  \- [öÖäÄåÅa-zA-Z, ]+', text)
  12. for item in auths:
  13.     print item

结果是:

选择 | 换行 | 行号
  1. >>> AU  - Huang, Zhipeng
  2. AU  - Geyer, Nadine
  3. AU  - Werner, Peter
  4. AU  - de Boor, Johannes
  5. AU  - Gösele, Ulrich
  6. >>> 
  7. >>> print auths
  8. ['AU  - Huang, Zhipeng', 'AU  - Geyer, Nadine', 'AU  - Werner, Peter', 'AU  - de Boor, Johannes', 'AU  - G\xc3\xb6sele, Ulrich']
  9. >>>
# 回答2


我对错误的信息表示歉意。实际上,文本不是字符串,而是文件中的文本。如果文本来自文件,则会出现错误:

选择 | 换行 | 行号
  1. fcit=codecs.open('C:/Users/Gintare/Downloads/Citations.txt','r',encoding='utf-8')
  2. text=fcit.readlines()

谢谢你的通知,我只是把文件上下文复制到了python脚本中,现在一切都正常了。但如果你知道如何正确阅读文件,请你写下。

# 回答3


您调用的是READLINS(),它读入行的列表。您应该对由READLINES()返回的列表使用Read()或迭代。如果文件是以UTF-8编码保存的,这应该是可行的:

选择 | 换行 | 行号
  1. # coding=utf-8
  2. import re
  3. import codecs
  4.  
  5. fcit=codecs.open("data.txt", encoding="utf-8")
  6. text=fcit.read()
  7. auths=re.findall(codecs.decode('AU  \- [öÖäÄåÅa-zA-Z, ]+', "utf-8"), text)
  8.  
  9. for item in auths:
  10.     print item
# 回答4


谢谢,它可以与file.read()一起使用

标签: python

添加新评论