0

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

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

即有任意数量的各方(如“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)

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

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

4

1 回答 1

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']
于 2013-05-19T18:15:16.533 回答