python 查找分组

目录

[根据 Door opened 和Door closed 把字符串分组:](#根据 Door opened 和Door closed 把字符串分组:)

[如果最后一组没有Door closed,则丢弃最后一条数据:](#如果最后一组没有Door closed,则丢弃最后一条数据:)


根据 Door opened 和Door closed 把字符串分组:

python 复制代码
log_text = """
[20231201-211102] Door opened! test_videos/save_results/
[20231201-211102] order_idx: 1/228, 23111004594831533_0_216.mp4
[20231201-211108] Door closed!
[20231201-211109] Door opened! test_videos/save_results/
[20231201-211109] order_idx: 2/228, order_path = 1338.mp4
[20231201-211115] Get:  score 0.52009
[20231201-211116] Door closed!
[20231201-211116] Door opened! /test_videos/save_results/
[20231201-211116] order_idx: 3/228, order.video_paths = high_res_20231110-133918_SW0031423111005385940276_0_256.mp4
[20231201-211147] Get:score 0.988185
[20231201-211147]   Put: core 0.988185
[20231201-211151] Get: re 0.525953
[20231201-211152] Door closed!
"""

    pattern = re.compile(r'(?=.*Door opened!)(?=.*Door closed!).*\n')

    segments = pattern.split(log_text)

    # 移除空字符串
    segments = [segment.strip() for segment in segments if segment.strip()]

如果最后一组没有Door closed,也会分成一组。

如果最后一组没有Door closed,则丢弃最后一条数据:

python 复制代码
    pattern = re.compile(r'Door opened!(.*?)Door closed!', re.DOTALL)

    matches = pattern.findall(log_text)

    # 打印匹配结果
    for match in matches:
        print(match.strip())
        print("---------------------")
相关推荐
IT_陈寒1 分钟前
Vite这个坑我帮你踩了,动态导入居然这样才生效
前端·人工智能·后端
swipe4 分钟前
Mem0 x Agent 实战系列:分层记忆 + 三路召回,搭建真正可用的长期记忆层
前端·javascript·面试
鹤鸣的日常12 分钟前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
Lee川12 分钟前
Event Loop 面试通关:从原理到口述再到实战
前端·面试
Sam_Deep_Thinking13 分钟前
Spring Boot 的启动原理是什么?
java·spring boot·后端
南部余额20 分钟前
Spring WebClient 从入门到精通
java·后端·spring
天天进步201520 分钟前
Python全栈项目--校园智能宿舍管理系统
开发语言·python
CodeStats25 分钟前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
摇滚侠25 分钟前
Spring 零基础入门到进阶 基于注解管理 Bean 38-43
xml·java·后端·spring·intellij-idea
kyriewen33 分钟前
手写 call、apply、bind:从原理到实现,附 3 个最容易忽略的边界情况
前端·javascript·面试