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探险家2 分钟前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
我是何平2 分钟前
🧠 用 JavaScript 理解算法复杂度:时间复杂度与空间复杂度详解
前端
JordanHaidee2 分钟前
Python 中 `if x:` 到底在判断什么?
后端·python
花花无缺4 分钟前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
SuperEugene6 分钟前
接口类型管理:从 any 到有组织的 api.d.ts
前端·面试·typescript
喝咖啡的女孩7 分钟前
React Hook & Class
前端
小呆呆_小乌龟7 分钟前
同样是定义对象,为什么 TS 里有人用 interface,有人用 type?
前端·react.js
Forever7_8 分钟前
仅用一个技巧,让 JavaScript 性能提速 500%!
前端·vue.js
用户9083246027311 分钟前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
ServBay11 分钟前
10分钟彻底终结冗长代码,Python f-string 让你重获编程自由
后端·python