You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何拆分字符串且不破坏括号内的内容?

拆分'm(1,2),m(4,3)'为指定列表的两种方法

针对这个问题,这里提供两种可靠的解决思路:

方法一:正则表达式(简单场景适用)

利用正则的正向后顾断言,只匹配)后面的逗号,避开括号内的逗号进行拆分:

import re
s = 'm(1,2),m(4,3)'
split_result = re.split(r'(?<=\)),', s)
print(split_result)  # 输出: ['m(1,2)', 'm(4,3)']

正则(?<=\)),的逻辑是:匹配前面紧跟)的逗号,只有符合这个条件的逗号才会被当作拆分分隔符。

方法二:遍历计数括号(通用场景适用)

如果字符串可能包含多层嵌套括号,这种方法更稳妥——通过计数括号的开闭状态,只在括号完全闭合(计数为0)时拆分逗号:

s = 'm(1,2),m(4,3)'
result = []
current_segment = ''
bracket_counter = 0

for char in s:
    if char == ',' and bracket_counter == 0:
        result.append(current_segment)
        current_segment = ''
    else:
        if char == '(':
            bracket_counter += 1
        elif char == ')':
            bracket_counter -= 1
        current_segment += char

# 最后把剩余的片段加入结果
result.append(current_segment)
print(result)  # 输出: ['m(1,2)', 'm(4,3)']

这个方法的核心是跟踪括号的嵌套深度,确保只有不在任何括号范围内的逗号才会触发拆分。

内容的提问来源于stack exchange,提问作者Arnur2937

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:05:33