从字符串列表中,我想提取所有单词并保存将它们扩展到新列表。我成功地使用以下形式的模式匹配来实现:
import re
p = re.compile('[a-z]+', re.IGNORECASE)
p.findall("02_Sektion_München_Gruppe_Süd")
不幸的是,该语言包含特定于语言的字符,因此给定示例形式的字符串会产生:
['Sektion', 'M', 'nchen', 'Gruppe', 'S', 'd']
我希望它能够产生:
['Sektion', 'München', 'Gruppe', 'Süd']
我很感激有关如何解决这个问题的建议。
答案 0 :(得分:1)
您可以使用
import re
p = re.compile(r'[^\W\d_]+')
print(p.findall("02_Sektion_München_Gruppe_Süd"))
# => ['Sektion', 'München', 'Gruppe', 'Süd']
请参阅Python 3 demo。
[^\W\d_]+
模式匹配任何非字,数字和_
的1个字符,即只有字母。
在Python 2.x中,您必须添加re.UNICODE
标志才能使其与Unicode字母匹配:
p = re.compile(r'[^\W\d_]+', re.U)