有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    如果特殊字符仅限于!@,则以下regexp应执行此操作:

    ^{}

    • (?=.*[0-9])向前看以检查至少一个数字
    • (?=.*[a-zA-Z])向前看以检查至少一个英文字母
    • [0-9a-zA-Z!@]{8,20}指定长度在8到20个字符之间的有限字符集(数字、字母、!@
  2. # 2 楼答案

    一个单一的正则表达式是不必要的复杂:一个字母和一个数字将需要处理两个订单,字母。。。数字,还有数字。。。信(向前看/向后看也很冗长。)

    return s.matches("[A-Za-z0-9@!]{8,20}") &&
        s.matches(".*\\d.*") && // 1 digit
        s.matches(".*\\pL.*"); // 1 letter
    

    这更具可读性,甚至可能更高效、更快

    您的错误:重复@!,排他性、非强制性外观落后