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

如何将字符串分割为长度不超过指定值的完整单词片段

解决字符串按完整单词分割且不超过指定长度的问题

这是个很实用的文本分段需求,我来给你一个靠谱的Python实现方案,完美匹配你的要求:

核心思路

  • 先把原字符串按空格拆成独立的单词列表,从根源上避免拆分单词的情况
  • 维护两个变量:current_chunk(当前正在构建的片段)和current_length(当前片段的总长度,包含单词间的空格)
  • 逐个遍历单词,每次预判加入当前单词后的总长度:
    • 如果总长度≤25,就把单词加入当前片段,更新长度
    • 如果总长度>25,就把当前片段存入结果列表,然后用这个单词开启新的片段
  • 遍历结束后,别忘了把最后一个未完成的片段也加入结果

代码实现

def split_string_by_word_limit(input_str, max_length=25):
    words = input_str.split()
    chunks = []
    current_chunk = []
    current_length = 0
    
    for word in words:
        # 计算加入当前单词后的总长度(第一个单词不需要加空格)
        next_length = current_length + len(word) + (1 if current_chunk else 0)
        if next_length <= max_length:
            current_chunk.append(word)
            current_length = next_length
        else:
            # 保存当前片段,开启新片段
            chunks.append(' '.join(current_chunk))
            current_chunk = [word]
            current_length = len(word)
    # 处理最后一个片段
    if current_chunk:
        chunks.append(' '.join(current_chunk))
    return chunks

# 测试你的示例字符串
test_string = "this is the very very very very long string"
result = split_string_by_word_limit(test_string)
print(result)
# 输出结果:['this is the very very', 'very very long string']

补充说明

  • 这个函数默认最大长度是25,你可以根据需求修改max_length参数
  • 如果遇到单个单词长度超过最大限制的情况,函数会把这个单词单独作为一个片段(毕竟总比拆分单词要好,你也可以根据需要额外添加判断逻辑,比如抛出提示或者做特殊处理)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:12:37