Warm tip: This article is reproduced from serverfault.com, please click

其他-Python函数,用“,”分隔字符串并忽略“:”

(其他 - Python function which split string by ',' and ignore ':')

发布于 2020-11-28 10:37:45

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

我期望的结果:

>>> func("foo, bar   , sss:s")
['foo', 'bar', 'sss', 's'] 
>>> func("foo"),
['foo']        
>>> func("bla  : bla"),
'bla  ', ' bla'

我现在有这个:

import re

def func(t):
    match = re.split(r'[,:]', t)
    return match
Questioner
Epic Opener
Viewed
11
shmulvad 2020-11-28 18:48:06

如果我根据你的解释和提供的示例正确地理解了你,则逗号前后的逗号可能不同,或者冒号之间没有任何空格。在这种情况下,应该可以进行以下操作:

def func(str_to_split):
    return re.split(r':| *, *', str_to_split)

正则表达式将':| *, *'查找单个冒号或可选空格,后跟逗号,然后再可选空格。