我正在使用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")。
请原谅我的无知,我是正则表达的新手。
答案 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']