Python 以大写字母拆分字符串,但仅当没有空格时
设置 我有一串名字需要分门别类 接下来呢,我有, 最后一行告诉我Python 以大写字母拆分字符串,但仅当没有空格时,python,string,split,whitespace,Python,String,Split,Whitespace,设置 我有一串名字需要分门别类 接下来呢,我有, 最后一行告诉我 ['Kreuzberg', 'Lichtenberg', 'Neuk', 'Prenzlauer', 'Berg'] 问题 1)忽略空白 “Prenzlauer Berg”实际上是一个名字,但代码根据“大写字母拆分”规则拆分 如果前面的字符是空白,那么什么命令可以确保它不以大写字母拆分 2)特殊字符处理不好 使用的代码无法处理'ö'。如何包含这些“德语”字符 也就是说,我想得到 ['Kreuzberg', 'Lichtenbe
['Kreuzberg', 'Lichtenberg', 'Neuk', 'Prenzlauer', 'Berg']
问题 1)忽略空白 “Prenzlauer Berg”实际上是一个名字,但代码根据“大写字母拆分”规则拆分 如果前面的字符是空白,那么什么命令可以确保它不以大写字母拆分 2)特殊字符处理不好 使用的代码无法处理
'ö'
。如何包含这些“德语”字符
也就是说,我想得到
['Kreuzberg', 'Lichtenberg', 'Neukölln', 'Prenzlauer Berg']
您可以使用正向和反向查找,只需显式列出UMLAUT:
>>> string = 'KreuzbergLichtenbergNeuköllnPrenzlauer Berg'
>>> re.findall('(?<!\s)[A-ZÄÖÜ](?:[a-zäöüß\s]|(?<=\s)[A-ZÄÖÜ])*', string)
['Kreuzberg', 'Lichtenberg', 'Neukölln', 'Prenzlauer Berg']
>>string='KreuzbergLichtenbergNeuköllnPrenzlauer Berg'
>>>关于findall(')(?这是有效的
string="KreuzbergLichtenbergNeuköllnPrenzlauer Berg"
pattern="[A-Z][a-ü]+\s[A-Z][a-ü]+|[A-Z][a-ü]+"
re.findall(pattern, string)
#>>>['Kreuzberg', 'Lichtenberg', 'Neukölln', 'Prenzlauer Berg']
string="KreuzbergLichtenbergNeuköllnPrenzlauer Berg"
pattern="[A-Z][a-ü]+\s[A-Z][a-ü]+|[A-Z][a-ü]+"
re.findall(pattern, string)
#>>>['Kreuzberg', 'Lichtenberg', 'Neukölln', 'Prenzlauer Berg']