Php 用于字母、特殊字符和数字组合的regexp

Php 用于字母、特殊字符和数字组合的regexp,php,regex,letters,Php,Regex,Letters,从下面的行集合中,我需要 带3个字母的行 具有特殊字符的行 由数字和特殊字符、字母组合而成的行 从下面的记录中 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等。如果我理解正确,应该这样做: ^(?=.*[A-Z])(?=.*\d).*$|^(?=.*[@\].])(?=.*\d).*$|

从下面的行集合中,我需要

  • 带3个字母的行
  • 具有特殊字符的行
  • 由数字和特殊字符、字母组合而成的行
  • 从下面的记录中

    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等。如果我理解正确,应该这样做:

    ^(?=.*[A-Z])(?=.*\d).*$|^(?=.*[@\].])(?=.*\d).*$|^(?=.*[@\].])(?=.*[A-Z]).*$
    
    ^(?=.*[A-Z])(?=.*\d).*$|^(?=.*[@\].])(?=.*\d).*$|^(?=.*[@\].])(?=.*[A-Z]).*$|^[A-Z]$|^[A-Z]{3,}$
    
    使用正向前瞻检查是否包含

    • 字母和数字
    • 特殊字符和数字(在本例中,
      @
      ]
      均视为特殊字符)
    • 特殊字符和字母

    这假设组合逐个测试-无逗号

    问候

    编辑

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

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

    你试过什么
    regex
    吗?/`\\~\\\!\\\\\\\\\\\\\\\\\$\%|\^|\&|*|(|)|\+|\=|[|\{|]|\}|\||\\|\'|\|\?|\/|\""|\;|\:|[a-zA-z0-9]{3}|[\s]|\s?\d+/但它选择所有数字,如123、1234等。。我只想选择数字和字母的组合,比如W2W,etcOJH,WV],2V,W,V,@A,AL,AS,1234,1,23是一个字符串还是一个数组,第一个记录中有OJH,第二个记录中有WV]等等?那么,您是否使用循环检查您的正则表达式?第一个WV中有OJH的数组,第二个WV中有OJH等。字母或数字组合大于3-不
    1234
    适合此组,或者它必须包含这两个类别?它可以工作,但没有选择WV',v等值,单词有单引号和单字母状态值,后面可能有空格,也可能没有空格ie、V或spaceVit,但没有选择wv',Y',b等值。。如何修复它?最简单的方法是,如果您对特殊字符的定义可以拉伸以匹配除数字、字母(A-Z,A-Z)和
    \uuuz>以外的任何字符,那么您可以将RE更改为
    ^(?=.*[A-Z])(?=.*\d)。*$^(?=.*\W(?=.*\W)(?=.[A-Z]).$^[A-Z]$^[A-Z]{3,
    \W
    \W
    相反,后者匹配数字A-Z(两种情况下)和
    \u
    。否则,您必须将所有字符插入正则表达式中定义的字符集。它由
    [@\].]
    部分定义,意思是
    @
    ]
    。添加任何你认为特殊的括号内的标志。注意!必须对结束括号进行转义(第一个括号之前的
    ``)。不要通过在它们之间放置字符来打破这一点。