Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以大写字母拆分字符串,但仅当没有空格时_Python_String_Split_Whitespace - Fatal编程技术网

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