利用正则表达式简单判断账号密码等

利用正则表达式简单判断账号密码等

1、判断账号必须为英文,不能有其他符号,限制长度范围6-12之间

//(pattern\compile\CASE_INSENSITIVE\Matcher\find()\group())
	Parrern pp=Pattern.compile("^[a-z]{6,12}$",Pattern.CASE_INSENSITIVE\trim);
	Matcher matcher=pp.matcher("jack".trim());
	System.out.println(matcher.find());

2、判断一个账号名称,必须字母开头,可以有数字,长度必须在6位以上

System.out.println("dafe51sf".matches("^[a-z][a-zA-Z0-9]{5,}$"));

3、要求用户姓名,要么是中文,要么是英文,不可以中英文混合。

System.out.println("".matches("^[\\u4e00-\\u9fa5]+ | [a-zA-Z]+$"));

4、取出字符串中的所有数字

String ss="f564a456aasg5a4s66a3dag";
//  \\d+ 改为  \\d  为一个数字一个数字输出
	Pattern p3= Pattern.compile("\\d+");
	Matcher m3=p3.matcher(ss);
	while(m3.find()) {
		System.out.println(m3.group());
	}

5、取出字符串中的所有数字并求和

	String sss="f564a456aasg5a4s66a3dag";
	Pattern p4= Pattern.compile("\\d+");
	Matcher m4=p4.matcher(sss);
	int sum=0;
	while(m4.find()) {
		int num=Integer.valueOf(m4.group());
		sum+=num;
		//System.out.println(m4.group()); 
		//去掉注释就可以输出字符串中所有数字
	}
	System.out.println(sum);

6、字符串中表达式运算:123-45-67+89;

String ssss = "123-45-67+89";
	Pattern ppp=Pattern.compile("[0-9]+|-\\d+");
	Matcher mmm=ppp.matcher(ssss);
	int sum2=0;
	while(mmm.find()) {
		sum2+=Integer.parseInt(mmm.group());
	}
	System.out.printf("%s=%d",ssss,sum2);

**
7、给出1-9数字组成的字符串,提取并且排列组合加减法得数为100**

public static void main(String[] gars) {
		 String [] rs=new String[] {"","+","-"};
		 Random random=new Random();
		 StringBuilder s=new StringBuilder();
		 int n=0;
		 while(true) {
			 s.append("1");
			 for (int i = 2; i < 9; i++) {
				s.append(rs[random.nextInt(rs.length)]);
				s.append(i);
			 }
			 s.append("9");
			 if (check(s.toString())) {
				System.out.printf("%s=100\n",s.toString());
				++n;
			 }
			 s.delete(0, s.length());
			 if (n>=5) 
				break;
			
		 }
	 }
//判断方法
	public static boolean check(String str) {//返回类型为布尔(boolean)
		//定义变量flag的值为	false
		boolean flag = false;
		//利用正则表达式提取字符串中的数字
		Pattern pp = Pattern.compile("[0-9]+|-\\d+");
		Matcher mm = pp.matcher(str);
		int sum = 0;
		while (mm.find()) {
			sum += Integer.parseInt(mm.group());
		}
		if (sum == 100)
			flag = true;
		return flag;
	}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

netXiaobao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值