java 正则表达式学习一

学习正则表达式首先要明白什么是转义字符,转义字符从字面意思理解就是改变字符的意义,为什么需要这样做呢?首先我们来看一下java中

一些基本的转义字符:

\n    回车      \u000a

\t     制表符      \u0009

\b    空格      \u0008

........

\n表示空格,也就是这个字符“\n”如果存在于一个字符串中,如:"sdfsd\ndsdf",将这段字符打印出来他输出的不是"sdfsd\ndsdf",而是先输出sdfsd

然后再换行输出dsdf,如果需要将这段字符"sdfsd\ndsdf"完整的输出来,那么就需要对\n进行转义,也就是说\n这个字符串他所表达的意思不是他这

个字符串的本身,他表示的是换行,如果需要得到这个字符串的本身就需要改变他所表达的意思也就是转义。

下面我们来看一下一些简单正则表达式:

	public static void main(String[] args) {
		Regular regular = new Regular();
		regular.test();
		
		String str = "sdfsd\ndsdf";
		System.out.println(str);
	}
	
	public void test(){
		/**
		 * 匹配字符串*/
		Pattern pattern = Pattern.compile("a*b");//正则表达式
		Matcher mat = pattern.matcher("b");//匹配的字符串
		boolean b = mat.matches();//返回匹配后的结果
		System.out.println(b);
		
		Pattern pattern2 = Pattern.compile("a*b");
		Matcher mat2 = pattern2.matcher("adfsdadfeb");
		boolean b2 = mat2.find();
		System.out.println(b2);
		
		Pattern pattern3 = Pattern.compile("a*b");
		Matcher mat3 = pattern3.matcher("absdfebsdfadadab");
		boolean b3 = mat3.lookingAt();
		System.out.println(b3);
		
		/**
		 * 分割字符串*/
		Pattern pattern4 = Pattern.compile("\\{");
		String str[] = pattern4.split("a{d{b{d");
		if(str!=null){
			for (int i = 0; i < str.length; i++) {
				System.out.println(str[i]);
			}
		}
		
		/**
		 * 字符串替换*/
		Pattern pattern5 = Pattern.compile("\\(dog\\)");
		Matcher mat5 = pattern5.matcher("zzz(dog)zzz(dog)zzz");
		String replace = mat5.replaceFirst("cat");
		System.out.println(replace);
	}

身份证号码验证

	public void test1(){
		boolean b = false;
		//正则表达式表示15位或者18位数字的一串数字
		Pattern p = Pattern.compile("\\d{15}|\\d{18}");
		Matcher m = p.matcher("120101198506020080");
		b = m.matches();
		System.out.println("身份证号码正确:"+b); //输出:true
		//
		p = Pattern.compile("\\d{15}|\\d{18}");
		m = p.matcher("020101198506020080");//错误 首位为0
		b = m.matches();
		System.out.println("身份证号码错误:"+b); //输出:false
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值