所选文件名格式的正则表达式

时间:2012-02-27 04:06:33

标签: c# regex

我想实现一些正则表达式来测试有效的文件名: ABCD-A-V1-02 /二千〇一十二分之二十七

第一个字母不应超过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]

2 个答案:

答案 0 :(得分:2)

以下是我根据your description看到的问题:

  • 第一组字母字符的量词需要恰好四个字符,而不是最多四个字符
  • 该模式不包含第二组字母字符('A'
  • 该模式不包含日期的正斜杠。
  • 你在大括号内发生了一些无效的事情

试试这个:

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

分解为:

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

显然,这不会确保末尾的数字代表有效日期。

答案 1 :(得分:0)

您也可以使用^...$符号来完全验证您的愿望模式

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

它只会验证您的愿望模式,其余部分无效

有效:AAAa-aa-v232-12 / 12 / 2-2010
invlid:AAAa-aa-v232-12 / 12 / 2-20103343AAAA