从字符串列表中,我要提取所有单词并保存扩展到新列表。我成功地使用了以下形式的模式匹配:
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']
我很感激你的建议如何解决这个问题。
您可以使用
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_]+ 模式匹配任何非单词、数字和 _ ,也就是说,那只是字母。
[^\W\d_]+
_
在Python2.x中,必须添加 re.UNICODE 使其与Unicode字母匹配的标志:
re.UNICODE
p = re.compile(r'[^\W\d_]+', re.U)