正则表达式:至少一个字母,至少一个数字,一定长度且不包括

时间:2017-05-10 01:30:30

标签: regex groovy

我正在使用Groovy的正则表达式。

我正在尝试使用以下规则来制定正则表达式。

  1. 必须正好是17个字符
  2. 必须只包含字母和数字
  3. 必须至少包含1个字母和1个数字字符
  4. 不能包含字母'I','O'或'Q'(大写或小写)
  5. 通过下面的表达式,我想我几乎就在那里。下面的正则表达似乎照顾了要求1,2和3.

     def pttrnVin = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+){17}$/
    

    我已尝试添加要求4,但没有成功。有人可以帮帮我吗?

    感谢

1 个答案:

答案 0 :(得分:1)

  1. 必须正好是17个字符。 (处理下方)
  2. 必须只包含字母和数字。 (处理下方)
  3. 必须至少包含1个字母和1个数字字符。 (?=.*[0-9])(?=[a-z])
  4. 不能包含字母'I','O'或'Q'(大写或小写)([a-hj-npr-z0-9]{17})
  5. 所以:

    /^(?=.*[0-9])(?=.*[a-zA-Z])([a-hj-npr-z0-9]{17})$/i
    

    Demo