密码模式的Java正则表达式

密码模式的Java正则表达式,java,regex,Java,Regex,不适用于至少一个字母、至少一个数字和至少一个特殊字符以及至少一个数字和至少一个特殊字符的正则表达式 例如: String passwordpattern="A9009"; //Not working for pattern3 注:应至少检查一个字母、数字和特殊字符 及 注:应检查至少一个特殊字符和至少一个数字 对于这些类型的断言,最好使用 至少一个字母、至少一个数字和至少一个特殊字符 \pL匹配任何unicode字母,\d匹配任何数字,\W匹配任何非单词字符 至少一个特殊字符和至少一个数字

不适用于至少一个字母、至少一个数字和至少一个特殊字符以及至少一个数字和至少一个特殊字符的正则表达式

例如:

String passwordpattern="A9009"; //Not working for  pattern3
注:应至少检查一个字母、数字和特殊字符

注:应检查至少一个特殊字符和至少一个数字


对于这些类型的断言,最好使用

至少一个字母、至少一个数字和至少一个特殊字符

\pL匹配任何unicode字母,\d匹配任何数字,\W匹配任何非单词字符

至少一个特殊字符和至少一个数字


注意,在使用matches方法时,不需要使用锚。

对于这些类型的断言,最好使用

至少一个字母、至少一个数字和至少一个特殊字符

\pL匹配任何unicode字母,\d匹配任何数字,\W匹配任何非单词字符

至少一个特殊字符和至少一个数字


请注意,在使用matches方法时,不需要使用锚。

此正则表达式模式将执行您想要的操作-仅当给定字符串输入中至少有一个字母、一个数字和一个特殊字符时才进行匹配:


^?=[a-zA-Z]+[0-9]+[^\w]+[^\s]+

此正则表达式模式将执行您想要的操作-仅当给定字符串输入中至少有一个字母、一个数字和一个特殊字符时匹配:


^?=[a-zA-Z]+[0-9]+[^\w]+[^\s]+

为什么不对每个需求使用单独的检查,而不是尝试在一个正则表达式中完成所有操作。由于不透明的符号,正则表达式的用途本质上是不明确的……您的两个密码都不包含特殊字符。因此,它们当然不满足至少一个特殊的字符条件。为什么不对每个要求使用单独的检查,而不是尝试在一个正则表达式中完成所有操作呢。由于不透明的符号,正则表达式的用途本质上是不明确的……您的两个密码都不包含特殊字符。因此,它们当然不满足至少一个特殊字符条件。@aubhava您能给我至少一个字母和数字的正则表达式吗| | | |至少一个字母和特殊字符^?=.*\pL?=.*\d.+$表示第一个字符和^?=.\pL?=.\W.+$表示第二个字符。谢谢您分享了漂亮的代码,您能解释一下\pL,非常感谢您,先生。@aubhava您能给我一个正则表达式来表示至少一个字母和数字| | |至少一个字母和特殊字符^?=.*\pL?=.*\d.+$表示第一个和^?=.*\pL?=..\W.+$表示第二个。谢谢您分享这段代码,您能解释更多关于\pL的内容吗?谢谢您,先生。
String passwordpattern="A3566523"; //Not working for  pattern4
    //Alphabets, Digits and Special Characters
            String pattern3 = "[^\\\\w\\\\d]*(([0-9]+.*[A-Za-z]+.*[!#%&'()*+,-:;<=>?@}{]+.*)|[A-Za-z]+.*[0-9]+.*[!#%&'()*+,-:;<=>?@}{]+.*|[!#%&'()*+,-:;<=>?@}{]+.*[A-Za-z]+.*[0-9]+.*|[!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*[A-Za-z]+.*|[A-Za-z]+.*[!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*|[0-9]+.*[!#%&'()*+,-:;<=>?@}{]+.*[A-Za-z]+.*)";

   //Digits and Special Characters
  String pattern4 = "([^\\\\w\\\\d]*(([!#%&'()*+,-:;<=>?@}{]+.*[0-9]+.*)|[0-9]+.*([!#%&'()*+,-:;<=>?@]+.*)))";
^(?=.*\pL)(?=.*\d)(?=.*\W).+$
^(?=.*\d)(?=.*\W).+$