如何在 Java 中使用正则表达式验证密码
给定一个密码,任务是在正则表达式的帮助下验证密码。 如果满足以下所有约束,则认为密码有效:
- 它至少包含 8 个字符,最多包含 20 个字符。
- 它至少包含一个数字。
- 它至少包含一个大写字母。
- 它至少包含一个小写字母。
- 它至少包含一个特殊字符,包括!@#$% & *()-+=^ 。
- 它不包含任何空格。
示例:
输入:Str = " Geeks @ portal 20 " T3】输出:真。 说明:该密码满足上述所有约束。
输入:Str = " Geeksforgeeks " T3】输出:假。 说明:包含大写和小写字母但不包含任何数字、特殊字符。
输入:Str = " Geeks @ portal 9 " T3】输出:假。 说明:包含大写字母、小写字母、特殊字符、数字以及无效的空格。
输入:Str = " 12345 " T3】输出:假。 说明:只包含数字,不包含大写字母、小写字母、特殊字符、8 个字符。
方法:这个问题可以用正则表达式来解决。
- 获取密码。
-
Create a regular expression to check the password is valid or not as mentioned below:
regex = "^(?=.[0-9])(?=.[a-z])(?=.[A-Z])(?=.[@#$%^ & -+=()])(?=\S+$)。{8,20 } { content } # x201D
其中:
- ^ 代表字符串的起始字符。
- (?=.*[0-9]) 代表一个数字必须至少出现一次。
- (?=.*[a-z]) 代表小写字母必须至少出现一次。
- (?=.*[A-Z]) 代表必须至少出现一次的大写字母。
- (?=.*[@#$%^&-+=()】代表必须至少出现一次的特殊字符。
- (?=\S+$) 整个字符串中不允许有空格。
- 。{8,20} 代表至少 8 个字符,最多 20 个字符。
- $ 代表字符串的结尾。
- 将给定的字符串与 Regex 匹配。在 java 中,这可以使用 Pattern.matcher() 来完成。
- 如果字符串与给定的正则表达式匹配,则返回 true,否则返回 false。
下面是上述方法的实现:
// Java program to validate
// the password using ReGex
import java.util.regex.*;
class GFG {
// Function to validate the password.
public static boolean
isValidPassword(String password)
{
// Regex to check valid password.
String regex = "^(?=.*[0-9])"
+ "(?=.*[a-z])(?=.*[A-Z])"
+ "(?=.*[@#$%^&+=])"
+ "(?=\\S+$).{8,20}{content}quot;;
// Compile the ReGex
Pattern p = Pattern.compile(regex);
// If the password is empty
// return false
if (password == null) {
return false;
}
// Pattern class contains matcher() method
// to find matching between given password
// and regular expression.
Matcher m = p.matcher(password);
// Return if the password
// matched the ReGex
return m.matches();
}
// Driver Code.
public static void main(String args[])
{
// Test Case 1:
String str1 = "Geeks@portal20";
System.out.println(isValidPassword(str1));
// Test Case 2:
String str2 = "Geeksforgeeks";
System.out.println(isValidPassword(str2));
// Test Case 3:
String str3 = "Geeks@ portal9";
System.out.println(isValidPassword(str3));
// Test Case 4:
String str4 = "1234";
System.out.println(isValidPassword(str4));
// Test Case 5:
String str5 = "Gfg@20";
System.out.println(isValidPassword(str5));
// Test Case 6:
String str6 = "geeks@portal20";
System.out.println(isValidPassword(str6));
}
}
Output:
true
false
false
false
false
false
版权属于:月萌API www.moonapi.com,转载请注明出处