要在5000字符长度的文本中通过 `。` 或 `.` 分块,每块不超过1000字符,并且分界符跟在文本后面,可以按以下步骤实现:
1. 使用正则表达式 `re.split` 将文本按 `。` 和 `.` 分隔并保留分隔符。
2. 遍历分割后的结果,依次合并块,确保每块长度不超过1000字符。
以下是具体实现方法:
- import re
- zh_text = "......" # 假设这是你的5000字符长的文本
- # 使用正则表达式捕获所有句号和点号
- parts = re.split(r"([。\.])", zh_text)
- # 去除空字符串
- segments = list(filter(None, parts))
- # 用于存储最终分块结果的列表
- chunks = []
- current_chunk = ""
- current_length = 0
- # 遍历分段并合并
- for i in range(0, len(segments), 2):
- text = segments[i]
- delimiter = segments[i + 1] if i + 1 < len(segments) else ""
-
- if current_length + len(text) + len(delimiter) > 1000:
- chunks.append(current_chunk)
- current_chunk = text + delimiter
- current_length = len(text) + len(delimiter)
- else:
- current_chunk += text + delimiter
- current_length += len(text) + len(delimiter)
- # 把最后一个块添加到结果列表中
- if current_chunk:
- chunks.append(current_chunk)
- # 打印结果块
- for chunk in chunks:
- print(chunk)
- print("-" * 20) # 仅用作分割显示,实际使用时可去掉
复制代码
这样,程序会将文本按 `。` 和 `.` 分块,每块尽量维持不超过1000字符,并且分隔符跟在文本后面。`chunks` 列表中保存了每个符合要求的文本块。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。