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

如何用Regex从文件路径中提取指定格式的零件编号?

提取零件编号的正则解决方案

直接用这个正则表达式就能精准匹配你要的零件编号:

([A-Z0-9]{3}-[A-Z0-9]{2}-[A-Z0-9]{2}-[A-Z0-9]{3})(?=\sOP\d+\s?(RAN)?\.NC)

规则解释

  • ([A-Z0-9]{3}-[A-Z0-9]{2}-[A-Z0-9]{2}-[A-Z0-9]{3}):捕获组,严格匹配XXX-XX-XX-XXX格式,[A-Z0-9]限定为大写字母和数字(需要支持小写的话,在正则末尾加i修饰符即可),数字对应各段的长度要求。
  • (?=\sOP\d+\s?(RAN)?\.NC):正向预查,确保匹配的零件号后跟着固定格式后缀:
    • \s:匹配空格
    • OP\d+:匹配OP加任意位数的数字(比如OP1、OP100)
    • \s?:可选的空格
    • (RAN)?:可选的RAN字符串
    • \.NC:匹配.NC后缀

示例验证

针对不同场景的路径都能正确提取:

  1. 原路径:\D6-DC\Users$\name\Profile\Desktop\New folder\XXX-XX-XX-XXX OP1 RAN.NC → 提取结果:XXX-XX-XX-XXX
  2. 无RAN的路径:\some\path\ABC-12-34-567 OP5.NC → 提取结果:ABC-12-34-567
  3. 长数字OP的路径:\foo\bar\XYZ-AB-CD-EFG OP123 RAN.NC → 提取结果:XYZ-AB-CD-EFG

代码示例(Python)

import re

file_path = r"\D6-DC\Users$\name\Profile\Desktop\New folder\XXX-XX-XX-XXX OP1 RAN.NC"
regex_pattern = r"([A-Z0-9]{3}-[A-Z0-9]{2}-[A-Z0-9]{2}-[A-Z0-9]{3})(?=\sOP\d+\s?(RAN)?\.NC)"
match_result = re.search(regex_pattern, file_path)

if match_result:
    print("提取到的零件编号:", match_result.group(1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:15:37