员工ID的标准正则表达式

我需要像Employeed ID的标准正则表达式

EMP015 015EMP EMP_015 E_015 EMP-015 EMP.VIS EMP/056 

基本上它应该允许._-/在/中间的字母数字字符

条件:

  1. 第一个角色不应该._-/
  2. 员工ID长度应为50个字符。

尝试将此用于正则表达式模式:

 @"^[AZ\d]{1}[AZ\d._/\-]{49}$" 

示例代码:

 Regex oRegex = new Regex(@"^[AZ\d]{1}[AZ\d._/\-]{49}$"); oRegex.IsMatch("EMP_01512312312312/31-2312.31231231231322222222222"); // true 

根据我的经验,如果您可以明确地解释格式,那么正则表达式并不难写。 我会对格式做出一些假设,如果我错了,请纠正我。

  1. 格式由两部分组成
  2. 其中一个部分是一个以字母E开头的大写字母字符串,长度未知
  3. 另一部分是一系列字母数字字符。
  4. 零件可以按任何顺序排列
  5. 部件可以单独分开._-/
  6. 部件可能根本不分开

鉴于这些,(一个相当冗长的)正则表达式可能是:

 ^(E[AZ]*[._\-/]*[0-9A-Z]+)|([0-9A-Z]+[._\-/]*E[AZ]*)$