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

如何用Python正则表达式提取符合特定模式的文件名

解决文件名匹配的正则表达式OR条件问题

要实现你的文件名筛选需求,正则里的OR条件用|符号即可。我们可以把两种匹配规则(单个模式、组合模式)用|连接,形成完整的匹配表达式。

正则规则拆解

  • 单个模式:匹配文件名中包含_f[1-99]、_t[1-99]、_v[1-99]的部分,对应的正则片段是_[ftv]([1-9]\d?)——其中[1-9]\d?表示1-9开头,后续可选一位数字(覆盖1-99的范围)。
  • 组合模式:匹配文件名中包含_f[1-9]_v[1-9]_t[1-9]的连续片段,对应的正则片段是_f[1-9]_v[1-9]_t[1-9]。

将两部分用|拼接,就得到完整的匹配正则:r'(_[ftv]([1-9]\d?))|(_f[1-9]_v[1-9]_t[1-9])'

完整Python代码示例

import re

# 定义匹配规则的正则表达式
match_pattern = r'(_[ftv]([1-9]\d?))|(_f[1-9]_v[1-9]_t[1-9])'

# 你的示例文件名列表
file_list = [
    "phone_football_androind_1_v1_te_t1_fe",
    "phone_football_ios_v1_t1",
    "foot_cricket2345678_f12_t4",
    "tfd_fr_ve_t1_v1_f3_201234_yyymmmdd",
    "def_000_t4_f1",
    "file_job_1234567_f1_t55",
    "ROKLOP_f33_t44",
    "agdcv_t45",
    "gop_gop_f1_t14_v14",
    "file_op_v1_t1",
    "fop_f1_v1_1223"
]

# 筛选符合规则的文件
qualified_files = [fname for fname in file_list if re.search(match_pattern, fname)]

# 输出结果
print("符合规则的文件名:")
for f in qualified_files:
    print(f)

代码说明

  • re.search()会在文件名的任意位置查找匹配,只要存在符合任一规则的片段,就判定该文件合格。
  • 运行这段代码后,所有示例文件名都会被筛选出来,因为它们都至少包含一个单个模式的匹配项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:35:32