需要正则表达式来匹配一个或多个字符组

时间:2015-02-02 07:32:59

标签: regex

我需要以下条件的正则表达式。

  1. 它应该只允许使用字母(两种情况)
  2. 不应仅允许数字或仅允许特殊字符。即至少两个或多个以下字符集(数字,字母,特殊字符)的组合。
  3. 例如: abcsfdASDFASFasdf ----有效

    1234523562354 ---无效

    ~!@#$&*!!! ----无效

    asdfbsdf1234 ---有效

    123454~!@~~~#%^ ---有效

    abfasf1234123!~!@#$@! ---有效。

2 个答案:

答案 0 :(得分:1)

这将检查所有四个选项:

https://www.regex101.com/r/cP2lS0/1

 ((?=.*[A-Za-z]).*)|((?=.*[A-Za-z])(?=.*\d).*)|((?=.*[@#$%])(?=.*\d).*)

说明:

((?=.*[A-Za-z]).*) - 字母(仅限或与其他群组一起使用)

((?=.*[A-Za-z])(?=.*\d).*) - 数字和字母

((?=.*[@#$%])(?=.*\d).*) - 特殊字符和数字

答案 1 :(得分:0)

我认为你可以改善这个......

([a-zA-Z]+[0-9]+)|([a-zA-Z]+[-!@#$%^&*_]+)|([0-9]+[-!@#$%^&*_]+)
  1. 字母或数字
  2. 信或特别字符
  3. 数字或字母
  4. 你也可以使用3个标志并单独创建正则表达式: 一个至少1位数,  一个至少1个字母  和一个至少1个特殊字符 然后编写if else语句以确保至少2个正则表达式为evalueate为true。