用';分割字符串的Python函数';并忽略';:';

用';分割字符串的Python函数';并忽略';:';,python,python-3.x,regex,Python,Python 3.x,Regex,我需要使用正则表达式编写一个函数,func(string),该函数将作为拆分字符串的结果返回结果列表。分隔符可以是带有可选空格或单冒号的逗号。使用:和,查看示例中的“空格”。我不知道如何达到这个效果 我期望的结果是: >func(“foo,bar,sss:s”) ['foo','bar','sss','s'] >>>func(“foo”), ['foo'] >>>func(“bla:bla”), “布拉”,“布拉” 我现在有这个: 重新导入 def func(t): match=re.spli

我需要使用正则表达式编写一个函数,
func(string)
,该函数将作为拆分字符串的结果返回结果列表。分隔符可以是带有可选空格或单冒号的逗号。使用
查看示例中的“空格”。我不知道如何达到这个效果

我期望的结果是:

>func(“foo,bar,sss:s”)
['foo','bar','sss','s']
>>>func(“foo”),
['foo']
>>>func(“bla:bla”),
“布拉”,“布拉”
我现在有这个:

重新导入
def func(t):
match=re.split(r'[,:]',t)
复赛

如果我根据您的解释和提供的示例正确理解了您的意思,则逗号前后可能有不同数量的空格,也可能有没有空格的冒号。如果是这种情况,应采取以下措施:

def func(str_到_分割):
返回重新拆分(r':*,*',str_to_split)

regex
':|*,*'
再次查找单个冒号或可选空格,后跟逗号和可选空格。

如果我根据您的解释和提供的示例正确理解您的意思,可以是逗号前后有不同数量空格的逗号,也可以是中间没有空格的冒号。如果是这种情况,应采取以下措施:

def func(str_到_分割):
返回重新拆分(r':*,*',str_to_split)

regex
':|*,*'
再次查找单个冒号或可选空格,后跟逗号和可选空格。

这可能是一个很好的解决方案:

def trim(text):
    return str(text).strip()

result = list(map(trim, match))

这可能是一个很好的解决方案:

def trim(text):
    return str(text).strip()

result = list(map(trim, match))

不清楚的问题。这回答了你的问题吗?不清楚的问题。这回答了你的问题吗?