如何按AA对字符串分组,在下一个AA出现前完成对应内容分词
实现方案
完全可以实现,不需要复杂分词处理,通过逐行识别AA开头的行作为分组边界即可完成需求,逻辑简单且性能更高。
核心实现逻辑
- 先将原始字符串按换行符拆分为逐行列表,按需过滤掉无效空行
- 初始化分组结果容器、当前分组临时容器两个变量
- 逐行遍历所有内容:
- 遇到
AA开头的行时,若当前临时容器已有内容,就将临时容器内容存入最终结果,再将当前行作为新分组的起始内容放入临时容器 - 非AA开头的行直接追加到当前临时容器中
- 遇到
- 遍历结束后将最后一组未存入结果的内容补入结果列表
示例代码(Python实现)
import re # 原始字符串 raw_text = """AA 12345678910 BB TESTTESTTEST BB TESTTESTTEST BB TESTTESTTEST CC TEST AA 0897654321 BB TESTTESTTEST CC TEST""" # 拆分+过滤空行 lines = [line.strip() for line in raw_text.splitlines() if line.strip()] groups = [] current_group = [] for line in lines: # 匹配AA开头的分组边界,用正则匹配单词边界避免误判内容里自带AA的行 if re.match(r'^AA\b', line): if current_group: groups.append(current_group) current_group = [line] else: current_group.append(line) # 追加最后一组 if current_group: groups.append(current_group) # 打印分组结果验证 for i, group in enumerate(groups, 1): print(f"第{i}组内容:") print("\n".join(group)) print("="*30)
运行输出结果
第1组内容: AA 12345678910 BB TESTTESTTEST BB TESTTESTTEST BB TESTTESTTEST CC TEST ============================== 第2组内容: AA 0897654321 BB TESTTESTTEST CC TEST ==============================
内容的提问来源于stack exchange,提问作者CoolBlue
相关产品推荐
相关产品推荐

