java中的正则表达式总结

初学Java,总结正则表达式的知识,巩固今天所看。
定义:是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串,其实就是一种规则。
1.举例:对输入的qq号码进行判断:1、要求必须是5-15位数字 。2、0不能开头。3、必须都是数字
public class Demo1_Regex {
	public static void main(String[] args) {
		System.out.println(checkQQ("12345678963254789"));
		String regex = "[1-9]\\d{4,14}";//使用正则表达式
		System.out.println("2547896".matches(regex));
	}
	public static boolean checkQQ(String qq) {
		boolean b = true;
		if (qq.length() >= 5 && qq.length() <= 15) {
			if (!qq.startsWith("0")) {
				char[] arr = qq.toCharArray();// 将字符串转成字符数组
				for (int i = 0; i < arr.length; i++) {
					char a = arr[i];
					if (a >= '0' && a <= '9') {

					} else {
						b = false;
					}
				}
			} else {
				b = false;
			}

		} else {
			b = false;
		}
		return b;
	}
}
注:java中\本身具有转义作用,\\表示\。\\d表示一位数字 。
2.预定义字符类。     .  任何字符。   \d 数字:[0-9]。   \D 非数字:[^0-9]。   \s  空白字符:[   \t\n\x0B\f\r]。   \S  非空白字符:[^\s] 。   \w 单词字符:[a-zA-Z_0-9] 。   \W 非单词字符:[^\w]。
3.字符类
public class Demo3_Regex {
	public static void main(String[] args) {
		// -?可能以负号开头,包括负号和无符号,\\d+表示一位或多位数字,|表示或
		System.out.println("3564".matches("-?\\d+"));
		System.out.println("-1455".matches("-?\\d+"));
		System.out.println("+9845".matches("-?\\d+"));
		System.out.println("+911".matches("(-|\\+?)\\d+)"));
		// 运行结果true true false true

		System.out.println("a".matches("[abc]"));// [abd]a或b或c单个字符
		System.out.println("b".matches("[^abc]"));// [^abc]除a、b、c以外的其他单个字符
		System.out.println("az".matches("[a-zA-Z]"));// 从a到z或从A到Z的任何单个字符
		System.out.println("f".matches("[a-d[m-p]]"));// a到d或m到p
		System.out.println("d".matches("[a-z&&[def]]"));// d,e,f(交集)
		System.out.println("a".matches("[a-z]&&[^ac]"));//a-z与不是a/c字符的交集
               //运行结果 true  false  false  false  true  true
	}
}
4.量词
	* X? X,一次或一次也没有
	* X* X,零次或多次
	* X+ X,一次或多次
	* X{n} X,恰好 n 次 
	* X{n,} X,至少 n 次 
	* X{n,m} X,至少 n 次,但是不超过 m 次 
public class Demo3_Regex {
	public static void main(String[] args) {
		System.out.println("a".matches("[abc]?"));
		System.out.println("abc".matches("[abc]*"));
		System.out.println("".matches("[abc]+"));
		System.out.println("aaaaa".matches("[abc]+"));
		System.out.println("abcaa".matches("[abc]{5}"));
		System.out.println("abcabcabcabcabcabc".matches("[abc]{5,}"));
		System.out.println("abcabcabcabcabc".matches("[abc]{5,15}"));
		//true true false true true true true
	}
}
5.分割功能
		String s="dad.mom.son";
		String[]arr=s.split("\\.");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}  //dad mom son 
注: 
| , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \ 等这些字符需要进行转义才能表示它本身。
		String s1="mom|son";
		String[]arr1=s1.split("|");
		for (int i = 0; i < arr1.length; i++) {
			System.out.print(arr1[i]+" ");
		}
		System.out.println();
		String s2="mom|son";
		String[]arr2=s2.split("\\|");
		for (int i = 0; i < arr2.length; i++) {
			System.out.print(arr2[i]+" ");
		}
	}//输出结果比较: m o m | s o n 和mom son 







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值