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

如何快速将字符串中重复的b、o替换为重复次数加对应字符?

简便实现重复b/o字符的压缩替换

核心思路是利用正则表达式匹配连续重复的b或o,通过替换逻辑自动生成「重复次数+对应字符」的格式,无需复杂的循环处理。

JavaScript 实现

const compressStr = str => str.replace(/([bo])\1+/g, (match, char) => `${match.length}${char}`);

// 测试示例
console.log(compressStr('bo$bbo$ooo!')); // 输出: bo$2bo$3o!

Python 实现

import re

def compress_str(s):
    return re.sub(r'([bo])\1+', lambda m: f"{len(m.group())}{m.group(1)}", s)

// 测试示例
print(compress_str('bo$bbo$ooo!')) # 输出: bo$2bo$3o!

正则逻辑说明

  • ([bo]):捕获单个b或o作为分组,后续用于提取原字符
  • \1+:匹配与捕获分组完全相同的字符,且重复1次以上(即连续重复的情况)
  • g(JavaScript):全局匹配,确保替换所有符合条件的连续重复字符
  • 替换函数中,match.length(JavaScript)或len(m.group())(Python)直接获取连续重复的次数,拼接后完成替换

这种方案代码简洁,自动忽略非b/o的字符,完全满足需求。

内容的提问来源于stack exchange,提问作者poka luka wan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:35:53