首页 > 解决方案 > 一些特定条件的正则表达式

问题描述

最大长度为 9 的字符 字母数字,最少 4 个数字字符(数字必须在位置 3 和 4 ),最多 2 个字母 EG 345678876, aa1234,1234aa, a1243a

我试过 /[a-zA-Z0-9]{0,1}^.{2,3}[0-9]{1,6}$/

标签: c#regex

解决方案


对于你的条件:

  • 最大长度为 9 个字母数字的字符
  • 最少 4 个数字字符(数字必须在位置 3 和 4)
  • 最多 2 个字母

您可以使用正面和负面的前瞻:

^(?!.{10}$)(?!(?:.*[a-z]){3})(?=(?:.*[0-9]){4})[a-z0-9]{2}[0-9]{2}[a-z0-9]*$

图案零件

  • ^字符串的开始
  • (?!.{10}$)断言字符串长度为 10
  • (?!(?:.*[a-z]){3})断言不超过 3 个字符 az
  • (?=(?:.*[0-9]){4})断言至少 4 位数字
  • [a-z0-9]{2}匹配任何列出的 2 次
  • [0-9]{2}比赛 2 次 0-9
  • [a-z0-9]*匹配任何列出的 0+ 次
  • $字符串结束

正则表达式演示


推荐阅读