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

Python正则匹配mbox-short.txt指定行的代码正确性咨询

代码正确性分析与修正方案

你当前编写的代码仅能匹配行内任意位置出现From:的内容,既没有完全符合第一个需求的匹配规则,也没有覆盖第二个需求。

需求1 正确实现

需求规则:搜索以'F'开头、后跟2个任意字符、再紧跟'm:'的行
需要用正则锚点^匹配行首,.匹配任意单个字符,对应正则为r'^F..m:'
实现代码:

import re

# 优先用with语法打开文件,会自动释放文件句柄,避免资源泄露
with open("mbox-short.txt", "r", encoding="utf-8") as file_hand:
    for line in file_hand:
        line = line.rstrip()
        if re.search(r'^F..m:', line):
            print(line)

需求2 正确实现

需求规则:搜索以From开头且包含@符号的行
正则需要同时匹配行首为From、且行内存在@,对应正则为r'^From.*@'
实现代码:

import re

with open("mbox-short.txt", "r", encoding="utf-8") as file_hand:
    for line in file_hand:
        line = line.rstrip()
        if re.search(r'^From.*@', line):
            print(line)

单遍历同时匹配两个需求

如果需要在同一次文件读取中同时筛选符合两个需求的行,可按以下代码实现:

import re

with open("mbox-short.txt", "r", encoding="utf-8") as file_hand:
    for line in file_hand:
        line = line.rstrip()
        # 按需调整匹配逻辑,or是满足任意一个就输出,and是同时满足两个才输出
        if re.search(r'^F..m:', line) or re.search(r'^From.*@', line):
            print(line)

内容的提问来源于stack exchange,提问作者Melb Jhay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:18:02