需要正则表达式的字符串必须有字母,但不能有纯数字,不能有特殊的字符

时间:2013-11-14 12:17:03

标签: regex

需要字符串的正则表达式:

  1. 可以有字母,数字
  2. 忽略特殊字符,例如:< > {} []#〜^ / \“
  3. 不能有纯粹的数字
  4. 最大尺寸为20个字符
  5. 有效答案 a)“hello world 123 - ” b)“123 hello - world” c)“ - 你好123世界”

    答案无效 a)“123456” b)“123456” c)“abc>>>” c)“abc123>>>” d)“>>>>” 我最接近的是:

    ^([A-Za-z0-9 '\-!\£\$:;%&\*\(\)_=\+,.\?@\n\r\t]{1,20}$
    

    但是“不能有纯粹的数字”的第3点变得无效。

    有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用这个基于前瞻性的正则表达式:

^(?![0-9]+$)(?!.*?[<>{}\[\]#~^\/"]).{1,20}$

^ - Line start
(?![0-9]+$) - Not just numbers
(?!.*?[<>{}\[\]#~^\/"]) - Doesn't have these special characters
.{1,20} - 1 to 20 characters
$ - Line end