Python使用多分隔符分割字符串且保留分割所用分隔符的实现方法
实现方案
Python的re.split支持通过捕获组保留匹配到的分隔符,你只需要把分隔符匹配规则用括号包裹即可,也可以额外加一步过滤逻辑处理边界场景下出现的空字符串。
可用代码示例
import re input_str = 'X < -500 & Y > 3000 / Z > 50' # 用捕获组包裹分隔符匹配规则,分割后会自动保留匹配到的分隔符 split_result = re.split(r"(and | or | & | /)", input_str) # 过滤空值和纯空白元素,不需要处理边界场景可省略这一步 split_str = [item for item in split_result if item.strip()] print(split_str)
输出结果
['X < -500', '&', ' Y > 3000', '/', 'Z > 50']
原理解释
re.split的正则规则如果包含()捕获组,分割后的结果列表会按顺序插入匹配到的分隔符内容- 列表推导过滤是为了兼容分隔符出现在字符串开头、结尾的特殊场景,避免结果里出现多余的空值元素。
内容的提问来源于stack exchange,提问作者Lorenz Weidinger
相关产品推荐
相关产品推荐

