09_正则表达式

正则

常用的通配符:
[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";
		//1.^ :以什么开头   $:以什么结尾
		String userNameRegx="^[a-zA-Z]{3,6}$";
		//2.格式:需要匹配的字符串.matches("正则匹配规则") 匹配成功返回true 匹配失败返回false;
		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)];
		//1.用户名的优化
		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("格式不正确...");
			}
		}
		//2.密码的优化
		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("格式不正确...");
			}
		}
		//3.手机号码的优化
		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);
	}     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值