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

Python字符串解码问题:正则表达式无法正确处理字符重复逻辑

修复字符串解码的正则匹配问题

原代码的核心问题在于正则表达式写法错误,导致无法正确捕获所有需要处理的字符:

  • 原正则[\d*]是匹配单个数字或星号,而非“可选的数字前缀”;[^d]是匹配除小写字母d外的任意字符,而非“非数字字符”,这两个错误导致大量字符被遗漏,仅匹配到了带数字前缀的C字符。
  • 另外,变量名list覆盖了Python内置类型,不建议使用。

修复后的代码

import re

def decode(txt):
    parts = []
    # 匹配规则:可选的数字前缀 + 单个非数字字符
    for cnt_str, char in re.findall(r"(\d*)(\D)", txt):
        # 无数字前缀时默认重复1次
        count = int(cnt_str) if cnt_str else 1
        parts.append(char * count)
    return "".join(parts)

测试验证

输入:"2CACA2CACA3CACACA3CAC"
输出:"CCACACCACACCCACACACCCAC",与期望结果完全一致。

正则规则说明

  • (\d*):捕获0个或多个数字,对应重复次数的前缀(没有数字时为空字符串)
  • (\D):捕获单个非数字字符,对应需要重复的目标字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:55:31