Regex 正则表达式-以至少包含一个字母和一个数字的3个字母数字字符开头,以一个字母结尾

Regex 正则表达式-以至少包含一个字母和一个数字的3个字母数字字符开头,以一个字母结尾,regex,Regex,我正在尝试生成符合以下条件的正则表达式: 4个字符 开头3个字符必须是字母数字字符,至少包括一个字母和一个数字 最后一个字符必须是字母 因此,我预计结果将是: 案例1:abcd->不匹配 案例2:234d->不匹配 案例3:a23c->匹配 案例4:3abc->匹配 案例5:xy23->不匹配 我测试了以下符合条件2的正则表达式,但仍然找不到符合条件1和3的解决方案 ^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{3}$ 我试过这一次,但在案例2中失败

我正在尝试生成符合以下条件的正则表达式:

  • 4个字符
  • 开头3个字符必须是字母数字字符,至少包括一个字母和一个数字
  • 最后一个字符必须是字母
  • 因此,我预计结果将是:

    • 案例1:abcd->不匹配
    • 案例2:234d->不匹配
    • 案例3:a23c->匹配
    • 案例4:3abc->匹配
    • 案例5:xy23->不匹配
    我测试了以下符合条件2的正则表达式,但仍然找不到符合条件1和3的解决方案

    ^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{3}$
    
    我试过这一次,但在案例2中失败了

    ^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{3}[a-zA-Z]$
    

    我如何结合这些标准?谢谢

    无需为3或4个字符使用复杂功能:

    /^(?:[a-z0-9](?:[0-9][a-z]|[a-z][0-9])|[0-9][a-z]{2}|[a-z][0-9]{2})[a-z]$/i
    

    你可以用

    ^(?=.{0,2}[0-9])(?=.{0,2}[a-zA-Z])[0-9a-zA-Z]{3}[a-zA-Z]$
    

    详细信息

    • ^
      -字符串的开头
    • (?=.{0,2}[0-9])
      -在0到2个字符之后必须有一个ASCII数字
    • (?=.{0,2}[a-zA-Z])
      -在0到2个字符之后必须有一个ASCII字母
    • [0-9a-zA-Z]{3}
      -3 ASCII字母数字
    • [a-zA-Z]
      -一个ASCII字母
    • $
      -字符串结尾

    您可以试试Hi Minghua,您决定使用哪种模式了吗?下面的长一点还是上面的短一点?谢谢Wiktor Stribiżew,我最终采纳了你的解决方案,但你的两种解决方案都适用于我的案例。谢谢各位。请使用@+用户名通知我们您的评论。我在下面张贴了一个答案,请考虑接受(点击左边的灰色记号),因为你选择了我的解决方案。
    ^(?=.{0,2}[0-9])(?=.{0,2}[a-zA-Z])[0-9a-zA-Z]{3}[a-zA-Z]$