首页 > 解决方案 > 使用多个分隔符拆分字符串并保留分隔符

问题描述

我正在寻找一种通过多个分隔符拆分字符串并保留字符串被拆分的分隔符的优雅方式。

例子:

input_str = 'X < -500 & Y > 3000 / Z > 50'
split_str = re.split("and | or | & | /", input_str)
print split_str
>>> ['X < -500', ' Y > 3000',  'Z > 50']

我想要得到的split_str是:

['X < -500', '&', ' Y > 3000', '/', 'Z > 50']

标签: pythonstringsplitdelimiter

解决方案


用括号试试:

>>> split_str = re.split("(and | or | & | /)", input_str)
>>> split_str
['X < -500', ' & ', 'Y > 3000', ' /', ' Z > 50']
>>> 

如果要删除多余的空格:

>>> split_str = [i.strip() for i in re.split("(and | or | & | /)", input_str)]
>>> split_str
['X < -500', '&', 'Y > 3000', '/', ' Z > 50']
>>> 

推荐阅读