您好我想以形成像Regex的字符组合
组合字母的字符组合, 标号(2) 特殊字符(1) 最少6个字符
我尝试使用
((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,})
但我无法做出如上所述的组合。怎么做。?
您好我想以形成像Regex的字符组合
组合字母的字符组合, 标号(2) 特殊字符(1) 最少6个字符
我尝试使用
((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,})
但我无法做出如上所述的组合。怎么做。?
你的正则表达式基本上可以。
你没有提供你正在使用正则表达式引擎的类型,所以,除非它的Java或不支持逐字字符串另一种语言,你可能需要更改\\d
为\d
,或正则表达式的那部分会尝试匹配一个文字反斜杠,后跟一个d
。
此外,您应该将正则表达式锚定到字符串的开头以提高性能。在Java中,.matches()
方法将为您隐式执行此操作。
然后,你的正则表达式只需要一个数字,但是两个ASCII字母(一个小写,一个大写)。那真的是你想要的吗?
我会理解你的要求是这样的:
if (subjectString.matches("(?=.*\\d.*\\d)(?=.*[A-Za-z])(?=.*[@#$%]).{6,}")) {
// Password matches the criteria
} else {
// Password doesn't match the criteria
}
这是Java正则表达式 – user1321824 2012-04-18 07:08:03
你想创建组合或搭配组合? – 2012-04-18 06:59:39
一些示例输入和预期匹配将会很有用。 – alan 2012-04-18 07:01:31