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

如何基于固定ID分割开头字节长度可变的拼接字符串?

解决方案

核心思路是利用**固定ID44B909**作为分割锚点——每个子串都是[字节长度标识][固定ID][内容]的结构,所有子串的起始位置都是[任意2位十六进制字符]44B909。用正则表达式匹配这个模式,在每个匹配到的子串前添加换行(第一个子串无需前置换行)即可。

修改后的代码如下:

import re

def split_string():
    input_str = input('请粘贴字符串:\n')
    # 匹配 "任意两位十六进制字符 + 44B909" 的子串起始模式
    pattern = r'([0-9A-Fa-f]{2}44B909)'
    # 在每个匹配到的子串开头前加换行,同时保留原内容
    result = re.sub(pattern, r'\n\1', input_str).strip()
    
    print('\n分割结果:')
    print(result)

while True:
    split_string()

代码说明

  1. 正则表达式([0-9A-Fa-f]{2}44B909):精准匹配任意两位十六进制字符(对应字节长度标识)加固定ID44B909的组合,也就是每个子串的起始标记。
  2. re.sub(pattern, r'\n\1', input_str):将每个匹配到的起始标记替换为换行符+原标记,实现长字符串的分割。
  3. .strip():去除字符串首尾可能多余的换行符,保证输出格式整洁。

测试示例输入后,即可得到符合预期的分割结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:06:56