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

如何将连续十六进制字符串分割为每行32个元组的空格分隔块?

格式化十六进制字符串为每行32个带空格的元组

可以通过两种正则替换方式实现需求,以下是具体方案:

方案1:链式正则替换(简洁易读)

先给每两个十六进制字符间添加空格,再按32个元组的长度换行:

const formattedHex = hex
  .replace(/(.{2})/g, '$1 ')  // 为每两个十六进制字符添加空格分隔
  .replace(/(.{95})/g, '$1\n')  // 每95个字符(对应32个带空格的元组)换行
  .trim();  // 移除末尾多余的空格和换行符

方案2:单正则+回调函数(一次replace调用)

通过正则匹配1-32个元组的区块,在回调中完成空格添加和换行:

const formattedHex = hex.replace(/((?:.{2}){1,32})/g, match => {
  return match.replace(/.{2}/g, '$& ').trim() + '\n';
}).trim();

效果验证

用你提供的示例字符串测试,两种方案都会输出目标格式:

e0 11 02 02 08 09 02 03 00 80 02 02 02 08 09 02 02 08 09 5f 52 0c 80 66 05 44 45 47 2b 44 73 96
21 e0 d0 03 04 04 01 d2 10 44 45 49 46 58 35 32 46 34 47 44 4a 4d 01 00 00 d3 10 44 45 47 2b 44
53 33 37 4f 53 47 4b 32 01 00 00 d4 10 44 45 47 2b 44 53 33 37 47 4b 56 30 33 01 00 00 d5 03 04
04 01 d6 10 44 45 47 2b 44 43 42 32 43 54 47 30 31 01 00 00 d7 10 44 45 47 2b 44 50 44 50 53 5f
5f 5f 5f 01 06 00 90 00

原理说明

  • 方案1中:/.{2}/g全局匹配每两个十六进制字符,替换为匹配内容加空格;/.{95}/g匹配32个元组加31个空格的总长度(32×2 + 31 = 95),替换为匹配内容加换行;最后trim()清理末尾多余的空格和换行。
  • 方案2中:((?:.{2}){1,32})匹配1到32个连续的元组(每个元组2个字符),回调函数内给每个元组添加空格,再拼接换行符,最后整体trim()处理收尾。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:39:51