1.在控制台上输入密码,要求密码由数字和字母混搭,关键词是_,且密码的长度至少1位,不得超过6位
package com.guyu.demo;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
*
* 2024年4月11日 上午9:57:40
* @author Guyu
* Pattern 表达式正则示例:
* 在控制台上输入密码,要求密码由数字和字母混搭,关键词是_,且密码的长度至少1位,不得超过6位
*
*/
public class PassWord041101 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码:");
String password = scanner.nextLine();
if (isValidPassword(password)) {
System.out.println("密码有效!");
} else {
System.out.println("【警告】密码无效,请确保密码:");
System.out.println("1. 包含数字和字母混搭");
System.out.println("2. 包含关键词\"_\"");
System.out.println("3. 长度至少1位");
System.out.println("4. 不超过6位");
}
}
private static boolean isValidPassword(String password) {
if (password.length() < 1 || password.length() > 6) {
return false;
}
/**
* 说明:
* (?=.*[a-zA-Z]) 确保密码中至少有一个字母(无论大小写)。
* (?=.*\\d) 确保密码中至少有一个数字。
* (?=.*_) 确保密码中包含关键词"_"。
* .+ 确保密码长度至少为1位。
* ^ 和 $ 分别匹配字符串的开始和结束,确保整个字符串都符合正则表达式的要求。
*/
Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d)(?=.*_).+$");
return pattern.matcher(password).matches();
}
}
- 随机输入后打印结果:
- 按要求随机输入后打印结果:
2.在控制台上输入昵称, 要求昵称由字母和数字混搭,需第一个位置只能是字母,且昵称的长度至少3位,不得超过10位
package com.guyu.demo;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
*
* 2024年4月11日 上午10:29:40
* @author Guyu
* Pattern 表达式正则示例:
* 用Java编写在控制台上输入昵称, 要求昵称由字母和数字混搭,
* 第一个位置只能是字母且昵称的长度至少3位,不得超过10位
*
*/
public class InputName041102 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入昵称:");
String nickname = scanner.nextLine();
if (isValidNickname(nickname)) {
System.out.println("昵称有效!");
} else {
System.out.println("【警告】昵称无效,请确保昵称:");
System.out.println("1. 第一个字符是字母");
System.out.println("2. 包含字母和数字混搭");
System.out.println("3. 长度至少为3位");
System.out.println("4. 不超过10位");
}
}
private static boolean isValidNickname(String nickname) {
if (nickname.length() < 3 || nickname.length() > 10) {
return false;
}
// 检查第一个字符是否是字母
if (!Character.isLetter(nickname.charAt(0))) {
return false;
}
/**
* 检查剩余的字符是否包含字母和数字混搭:
* ^ 表示字符串的开始。
* (?=.*[a-zA-Z]) 是一个前视断言,确保字符串中至少有一个字母。
* (?=.*\\d) 是另一个前视断言,确保字符串中至少有一个数字。
* [a-zA-Z\\d]+ 确保剩余的字符是字母或数字,并且至少有一个这样的字符。
* $ 表示字符串的结束。
*/
Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]+$");
return pattern.matcher(nickname).matches();
}
}
- 随机输入后打印结果:
- 按要求随机输入后打印结果:
总之,使用 Pattern 正则匹配常用于日常上手机号、身份证号、邮箱、QQ、验证码等多场景
Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
感谢您在浩瀚的网络世界中精心阅读了此篇文章
衷心希望此文能给您带来帮助
没有个性 哪来的签名!
详情请关注点我
持续更新中

© 2024 04 - Guyu.com | 【版权所有 侵权必究】 |