Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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_Regex_String - Fatal编程技术网

Python 查找由相同字符串分隔的字符串

Python 查找由相同字符串分隔的字符串,python,regex,string,Python,Regex,String,我正在使用python正则表达式。 我的输入是如下字符串: [In 1]: Names = "John r Spencer Farrow r David K r Gillian" [In 2]: Names = "Andrew r Eli Ltd" i、 e.任何数量的当事人(如“John”或“Spencer Farrow”)均以“r”分隔 我希望我的输出是一个字符串列表,字符串就是参与方。像这样 [Out 1]: ["John", "Spencer Farrow", "David K", "

我正在使用python正则表达式。 我的输入是如下字符串:

[In 1]: Names = "John r Spencer Farrow r David K r Gillian"
[In 2]: Names = "Andrew r Eli Ltd"
i、 e.任何数量的当事人(如“John”或“Spencer Farrow”)均以“r”分隔

我希望我的输出是一个字符串列表,字符串就是参与方。像这样

[Out 1]: ["John", "Spencer Farrow", "David K", "Gillian"]
[Out 2]: ["Andrew", "Eli Ltd"]
我尝试过的代码就是这个的变体

re.findall(r'[^(\sr\s)\w\s]+', Names)
i、 e.我尝试从字符集中排除特定的字符串\sr\s(或“r”),包括空格和单词字符


请原谅我的无知,我是新来的正则表达式。

类似的东西应该可以:

>>> import re
>>> s = "John r Spencer Farrow r David K r Gillian"
>>> re.split(r'\br\b',s)
['John ', ' Spencer Farrow ', ' David K ', ' Gillian']
这一个也将消除任意数量的空白:

>>> re.split(r'\b(?:\s*)r(?:\s*)\b',s)
['John', 'Spencer Farrow', 'David K', 'Gillian']

当然,如果您知道分隔符总是
“r”
,那么您可以使用
str.split

>>> s.split(' r ')
['John', 'Spencer Farrow', 'David K', 'Gillian']

此外,如果参与方字符串周围有空格不是分隔符的一部分,则可以通过列表理解或
map
[x.strip()for x in s.split('r')]
@pcurry来处理它——这是真的——但是如果不使用regex,您无法编写一个也在
“\tr\t”
上拆分的简单解决方案。