regexp用于组合字母,特殊字符和数字

时间:2016-04-01 09:39:00

标签: php regex letters

来自我需要的以下行集

  1. 包含3个字母的行
  2. 包含特殊字符的行
  3. 包含数字和特殊字符,字母
  4. 组合的行

    来自以下记录..

    OJH,
    WV],
    2V,
    W.W,
    V,
    @A,
    AL,
    AS,
    1234,
    1,
    23
    

    我需要选择OJH,WV],2V,W.W,V,@ A等。

    即字母和特殊字符的组合,字母和数字的组合以及大于3的字母或数字组合

    我需要跳过AL,AS,1234,1,23等。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,应该这样做:

^(?=.*[A-Z])(?=.*\d).*$|^(?=.*[@\].])(?=.*\d).*$|^(?=.*[@\].])(?=.*[A-Z]).*$

使用正向预测它会检查包含

的行
  • 字母和数字
  • 特殊字符和数字(在这种情况下@].都算特殊)
  • 两个特殊字符和字母

Check this example at regex101.

这假设组合是逐个测试的 - 没有逗号。

问候。

修改

错过错误的字母数选项。这应该这样做:

^(?=.*[A-Z])(?=.*\d).*$|^(?=.*[@\].])(?=.*\d).*$|^(?=.*[@\].])(?=.*[A-Z]).*$|^[A-Z]$|^[A-Z]{3,}$

See it here.