代码之家  ›  专栏  ›  技术社区  ›  lewis4u

Preg可靠地匹配字母和数字

  •  0
  • lewis4u  · 技术社区  · 7 年前

    如何在PHP中为2个字符的字符串进行preg_匹配,例如:

    1a valid
    b2 valid
    3c valid
    
    11 invalid
    67 invalid
    ad invalid
    dt invalid
    

    我试过这个,但不起作用:

    $string = "aa";
    $result = preg_match('/^([a-z]|[0-9]){2}$/i', $string);
    

    它匹配所有字符,而不是仅当第一个字符是字母,然后是数字时才匹配,反之亦然。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Rolando Cruz    7 年前
    preg_match('/^([a-z][0-9]|[0-9][a-z])$/i', $string);
    
        2
  •  1
  •   Loek    7 年前

    比罗兰多的答案可读性差,但略短

    ^[\d|[a-z][\d|[a-z]$
    

    在这里看到它的实际作用: https://regex101.com/r/dXCDcb/4

    推荐文章