Python 查找由相同字符串分隔的字符串
我正在使用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", "
[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”
上拆分的简单解决方案。