正则表达式匹配特定字符串

时间:2012-07-05 21:32:18

标签: asp.net regex

RegEx一直是我的阿基里斯脚跟。我正在编写网络应用程序,用户将输入他的标识符。我正在使用RegexValidator来验证此输入。

标识符应该是这样的:

TN-In-PL-KW-2012-1234

这就是标识符的构建方式:

  • 前两个字母始终为TN
  • 后跟连字符
  • 然后是两个字母:InTeYoEt
  • 连字符
  • 两个大写字母
  • 另一个连字符
  • 另外两个大写字母
  • 连字符
  • 四位数,即一年,所以在1970年到2012年之间(只要有4位数,我可以忽略它)
  • 连字符
  • 可以包含1到4位数的序号

请帮我编写RegEx以匹配此标识符。

3 个答案:

答案 0 :(得分:7)

^TN-(In|Te|Yo|Et)-[A-Z]{2}-[A-Z]{2}-\d{4}-\d{1,4}$

正如评论一样,我建议您Rubular如果您想提高正则表达式技能,那么当您需要使用正则表达式时,这是一个简单实用的页面

答案 1 :(得分:2)

TN-(In|Te|Yo|Et)-([A-Z]{2}-){2}(19[7-9][0-9]|200[0-9]|201[0-2])-[0-9]{1,4}

答案 2 :(得分:1)

TN-((In)|(Te)|(Yo)|(Et))-[A-Z]{2}-[A-Z]{2}-\d{4}-\d{1,4}