正则
常用的通配符:
[a-z]:表示任意单个小写字母
[A-Z]:表示单个单一大写字母
[A-Za-z]:表示单个任意字母
[0-9]:表示单个任意数字(\d等价)
[\u4e00-\u9fa5]:表示单个任意汉字
[A-Za-z\d\u4e00-\u9fa5]:表示单个任意数字字母汉字组成
\w:代表任意单个字母数字下划线$组成 [A-Za-z0-9_$]
常用的量词:
?:代表0次或者1次
举例子说明:[a-z]? 字符串中要么没有字母,要么只能出现1个字母。
*:代表任意长度:
举例子说明:[a-z]* 字母可以有,也可以没有。(0次或1次)
+:代表1次或者1次以上:
举例子说明:[0-9]+ 数字出现的次数至少是1次或者多次
{n}:代表指定长度
举例子说明:[A-Za-z]{6}:必须由6个字母组成,限定6个字母。
{n,m}:代表指定范围长度[n,m]
举例子说明:[A-Za-z0-9]{8,16}:由8-16位的字母数字组成。
{n,}:代表 n或者n个长度以上。
举例子说明:[a-z]{4,}:由4个或者4个以上的字母组成。
<1>.用户名:由3-6字母数字组成。
[A-Za-z]{3,6}
<2>.密码:由6位数字组成。
\\d{6}
<3>.手机号码:由1开头 后面10位数字组成
1\\d{10}
<4>.必须包含@和.点 , @必须在点.的前面 @不能放在第一位,.不能放在首位
@和点.之间 可以有内容也可以没有内容。
\\w+@\\w*.\\w+
<5>.余额:首位由[1-9组成] 长度在3-10之间。。。
[1-9][0-9]{3,10}
public static void main(String[] args) {
String userName="abcdef";
String userNameRegx="^[a-zA-Z]{3,6}$";
System.out.println(userName.matches(userNameRegx)?"用户名匹配成功!!!":"用户名匹配失 败!!!");
String userPass="123456";
String userPassRegx="^\\d{6}$";
System.out.println(userPass.matches(userPassRegx)?"密码匹配成功":"密码匹配失败");
}
<1>.注册(用户信息)
<1>.用户名由3-6位的字母或者数字或者汉字组成
[a-zA-Z0-9\u4e00-\u9fa5]{3,6}
<2>.密码由4-8位字母数字组成
<3>.手机号码首位为1 后面由10个数字组成
<4>.使用uuid生成头像名,图片的后缀名(.jpg,.png,jpeg,gif)随机生成
输入合格:将注册完成的信息打印在控制台。。。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String userName=null;
String userPass=null;
String userPhone=null;
String[] fileSiffixs= {".jpg",".png",".gif",".jpeg"};
Random ra=new Random();
String uuid=UUID.randomUUID().toString().replace("-", "").toUpperCase();
uuid=uuid+fileSiffixs[ra.nextInt(fileSiffixs.length)];
while(true) {
System.out.println("请输入用户名(由3-6位的字母数字汉字组成):");
userName=sc.next();
if(userName.matches("^[\\da-zA-Z\u4e00-\u9fa5]{3,6}$")){
System.out.println("格式正确...");
break;
}else {
System.out.println("格式不正确...");
}
}
while(true) {
System.out.println("请输入密码(由4-8位的字母数字组成):");
userPass=sc.next();
if(userPass.matches("^[a-zA-Z\\d]{4,8}$")) {
System.out.println("格式正确...");
break;
}else {
System.out.println("格式不正确...");
}
}
while(true) {
System.out.println("请输入手机号码:");
userPhone=sc.next();
if(userPhone.matches("^1[0-9]{10}$")) {
System.out.println("格式正确...");
break;
} else {
System.out.println("格式不正确...");
}
}
System.out.println("用户名\t密码\t手机号码\tuuid");
System.out.printf("%s\t%s\t%s\t%s\n",userName,userPass,userPhone,uuid);
}