小编Noe*_*mis的帖子

正则表达式恰好匹配n次出现的字母和m次出现的数字

我必须匹配一个8个字符的字符串,它可以包含2个字母(1个大写和1个小写),正好是6个数字,但它们可以任意排列.

所以,基本上:

  • K82v6686会通过
  • 3w28E020会通过
  • 1276eQ900会失败(太长时间)
  • 98Y78k9k会失败(三个字母)
  • A09B2197会失败(两个大写字母)

我已经尝试使用正向前瞻来确保字符串包含数字,大写和小写字母,但是我将其限制为特定次数.我想我可以通过包括字母和数字可能出现的所有可能组合来解决它:

(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z]) ([A-Z][a-z][0-9]{6})|([A-Z][0-9][a-z][0-9]{5})| ... | ([0-9]{6}[a-z][A-Z])
Run Code Online (Sandbox Code Playgroud)

但这是一种非常迂回的方式,我想知道是否有更好的解决方案.

java regex

9
推荐指数
1
解决办法
7052
查看次数

标签 统计

java ×1

regex ×1