1

从字符串列表中,我想提取所有单词并将它们扩展保存到一个新列表中。我使用以下形式的模式匹配成功地做到了这一点:

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']

我很感激有关如何解决此问题的建议。

4

1 回答 1

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 演示

[^\W\d_]+模式匹配任何 1+ 字符,这些字符不是非单词、数字和_,也就是说,它们只是字母。

在 Python 2.x 中,您必须添加re.UNICODE标志以使其匹配 Unicode 字母:

p = re.compile(r'[^\W\d_]+', re.U)
于 2018-06-15T09:35:54.173 回答