加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:05:40 所属栏目:百科 来源:网络整理
导读:1.所用到的正则表达式,都在java.util.regex包中的pattern类中,下面是常用的字符匹配: 1.常用的字符类匹配如下 2.怎样使用正则表达式。 1.指定为字符串的正则表达式必须首先被比编译为此类的实例。然后,可将得到的模式用于创建Matcher对象,依照正则表达

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表示非空白字符
	 }
}



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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读