查找每个由相同字符串分隔的字符串

时间:2013-05-19 18:14:00

标签: python regex string

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

[In 1]: Names = "John r Spencer Farrow r David K r Gillian"
[In 2]: Names = "Andrew r Eli Ltd"

即。有许多派对(比如" John"或者#34; Spencer Farrow")都被" r"。

我希望我的输出是字符串列表,字符串是派对。喜欢这个

[Out 1]: ["John", "Spencer Farrow", "David K", "Gillian"]
[Out 2]: ["Andrew", "Eli Ltd"]

我尝试的代码是这个

的变体
re.findall(r'[^(\sr\s)\w\s]+', Names)

即。我尝试从包含空格和单词字符的字符集中排除特定字符串\ sr \ s(或" r")。

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

1 个答案:

答案 0 :(得分:2)

这样的事情应该有效:

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