正则表达式用于检查是否存在某些特殊字符,强制数字和字母

时间:2013-09-05 05:18:20

标签: regex regex-lookarounds

我目前的正则表达式看起来像

([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+

正则表达式应该验证:

  1. Alpha Numeric Charachters
  2. 必须包含至少一个数字
  3. /,\,#, - ,是否允许
  4. 必须少于30个字符
  5. 我正在使用的正则表达式(如上所述)用数字验证任何东西和所有东西。它不检查特殊字符的有效性。有人可以指出我哪里错了吗? 更新:使用此

    ^([a-zA-Z]*[0-9]+[\/\\#-]?[a-zA-Z0-9]*)+$
    

    不适用于-1,/ 1等字符串

2 个答案:

答案 0 :(得分:3)

我能想到的最简单的正则表达式是:

^(?=.*\d)[a-zA-Z\d\\/#-]{1,29}$

角色类和重复非常简单。在末尾添加^$之后,主要的功夫就是提前确定数字的存在。

答案 1 :(得分:1)

它匹配任何数字,因为没有锚,所有其他子表达式都是可选的。如果您打算匹配整个字符串,则需要使用\A^开始正则表达式,并以\Z$结束。