所选文件名格式的Regex表达式

本文关键字:Regex 表达式 格式 文件名 | 更新日期: 2023-09-27 18:25:57

我想实现一些正则表达式来测试有效的文件名,如下所示:ABCD-av1-02/27/2012

在第一个字母不应超过4个字母的情况下,第二组从A到Z,V#如V1、V2等

这是我到目前为止所拥有的,但在reg测试仪中不起作用,我想我错过了一些东西。

[a-zA-Z]{4}-[A-Z]{1}-V'd{0,9}[1-9])|(0[1-9])|(1[0-2]))'/(([0-9])|([0-2][0-9])|(3[0-1]))'/(([0-9][0-9])|([1-2][0,9][0-9][0-9]

所选文件名格式的Regex表达式

以下是我根据您的描述看到的问题:

  • 第一组字母字符的量词只需要四个字符,而不是最多四个字符
  • 该模式不包含第二组字母字符('A'
  • 该模式不包含日期的正斜杠
  • 花括号内有一些无效的内容

试试这个:

@"[a-zA-Z]{1,4}-[A-Z]-V'd-'d{2}/'d{2}/'d{4}"

分解为:

  • 至少一个但不超过四个字母字符,不区分大小写
  • 连字符
  • 单个大写字母字符
  • 连字符
  • 大写'V'
  • 一个位数
  • 连字符
  • 两位数字
  • 正斜杠
  • 两位数字
  • 正斜杠
  • 四位数字

显然,这并不能确保末尾的数字代表一个有效的日期。

您还可以放置^...$符号,以便准确地验证您的愿望模式

 @"^[a-zA-Z]{1,4}-[A-Z]-V'd-'d{2}/'d{2}/'d{4}$"

它只会验证你的欲望模式,其余的都是无效的

有效:AAAa-aa-v232-12/2-2010
发票:AAAa-aa-v232-12/2-2013343AAA-