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

如何实现符合xxxx-yyyy-zzzz格式的字符串正则校验?

修正字符串格式校验的正则表达式问题

你的正则表达式完全不符合需求,导致误判,问题出在这几点:

  • 原正则里的([A-Z][0-9])只能匹配一个大写字母+一个数字,根本没包含你允许的小写字母、下划线和点
  • 每个块被限制成仅两个字符,而你的目标字符串块长度明显更长
  • 末尾的+加错了位置,会导致最后一个分组重复多次,逻辑混乱

修正后的正则表达式应该是:

ab = re.compile(r"^[a-zA-Z_.]+-[a-zA-Z_.]+-[a-zA-Z_.]+$")

正则解释:

  • [a-zA-Z_.]:精准匹配你允许的所有字符(大小写字母、下划线、点)
  • +:表示每个块至少包含1个有效字符(避免出现空块,比如--abc这种无效格式)
  • ^ 和 $:限定整个字符串的首尾,确保整个字符串完全符合格式,不会出现部分匹配的情况

修正后的完整代码:

import sys
import re

file_name: str = "actors-zero-This_Is_Fine.exe.yml"
ab = re.compile(r"^[a-zA-Z_.]+-[a-zA-Z_.]+-[a-zA-Z_.]+$")
if ab.match(file_name):
    print(f"{file_name} 格式正确")
else:
    print(f"WARNING wrong syntax in {file_name}")
    sys.exit()

运行这段代码后,目标字符串会被正确识别为格式合法,不会再输出错误警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:45:41