【学习笔记⑤】正则表达式

1.所用到的正则表达式,都在java.util.regex包中的pattern类中,下面是常用的字符匹配:

    1.常用的字符类匹配如下

  

    2.怎样使用正则表达式。

            1.指定为字符串的正则表达式必须首先被比编译为此类的实例。然后,可将得到的模式用于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配,执行匹配所涉及的所有状态都驻留在匹配器中,所有 的匹配器可以共用同一种模式。最典型的调用顺序是:

            Pattern p =Pattern.compile("a*b");

           Matcher m =p.matcher("aaaaaab");

           boolean  b =m.mathcher();

          注:   Pattern类是正则操作的最重要的一个类(主要是定义规范并进行字符串拆分工作),所有正则规范都要在Pattern类中进行指定,此类常用方法如下:

            1、compile(String regex)方法,返回值为Pattern对象

             2、matcher(CharSquence input) 方法,返回值为Matcher对象

             3、split(CharSquence input)方法,返回值为String数组类型

             4、pattern()方法,返回值使用的正则表达式。

      例题:把字符串ab233daad32ddd54434da434,中的数字去除。代码如下:

package com.regex.practise;
import java.util.regex.Pattern;

public class RegexDemo2 {
	public static void main(String[] args) {
		String str="ab233daad32ddd54434da434";
		Pattern p =Pattern.compile("\\d+");
		String c[]=p.split(str);
		 for(int x=0;x<c.length;x++){
			 System.out.print(c[x]);
		 }
	}//结果abdaaddddda


}
       2、Matcher  类主要是进行验证和替换功能的操作。主要的方法如下:

        ①matchers()方法,返回值类型为boolean

        ②replaceAll(String  replacement)方法,返回值为String类型

        ③replaceFirst(String replacement)方法,返回值为String类型。

       例题:进行字符串额验证,是否符合”xxx-xx-xxx“形式,代码如下:

package com.regex.practise;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo3 {
  public static void main(String[] args) {
	   String str="111-22-333";//定义字符串
	   String pat="\\d{3}-\\d{2}-\\d{3}";
	   Pattern p=Pattern.compile(pat);
	    
	   Matcher m=p.matcher(str);
	      if(m.matches()){
	    	  System.out.println("验证合法");
	      }else {
	    	  System.out.println("验证不合法");
	      } 
    }
}

            2.String类对正则的支持(重点)

          在String类中有以下 的方法对后勤的支持,方法如下:

            ①matchers(String regex)方法,返回值类型为boolean类型。

            ②replaceAll(String regex,String replacement)方法,返回值为String类型。

            ③replaceFirst(String regex,String replacement)方法,返回值为String类型

            ④split(String regex)方法,返回值类型为String数组类型。

          注:在开发中如果要想使用正则,基本上都是直接应用String类,很少去直接使用pattern类或者matcher类。代码如下:

 

package com.regex.practise;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo2 {
	public static void main(String[] args) {
		String str="ab233daad32ddd54434da434";
		Pattern p =Pattern.compile("\\d+");
		
                 //替换方法一,用matcher类
		 Matcher m=p.matcher(str);
		String str1 =m.replaceAll("※");
		 System.out.println(str1);//结果ab※daad※ddd※da※
	
		 System.out.println();
		//方法二用String类
		 String str2=str.replaceAll("\\d+", "※");//结果 ab※daad※ddd※da※
		 System.out.println(str2);
	}
}


例题:验证邮箱是否合法,代码如下:

package com.regex.practise;

public class Stringregex2 {

	 public static void main(String[] args) {
		String email="dui1cuo@126.com";
		boolean x=email.matches("\\S+@+\\S+.(com|com.cn|net.cn|cn|net|edu)");
	System.out.println(x);//true,\S表示非空白字符
	 }
}



注:正则表达式可以方便的完成验证的操作,是一组标准性的规范,在各种语言中都可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值