Java学习手册:正则表达式

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请务必注明出处: https://blog.csdn.net/MaybeForever/article/details/89462570

一、正则表达式

正则表达式:就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求。

表达式 意义
[ ] 表示1个字符
[abc] 表示abc中任一个字符,字符a、b或c
[^abc] 表示除了a、b、c之外的任意字符
[a-zA-Z0-9] 表示由字母、数字组成,a-z,A-Z,0-9中任意一个字符
\d 表示任意一个数字字符,相当于[0-9]
\w 表示数字、字母、下划线,相当于[a-zA-Z0-9_]
\s 表示所有空白字符(换行、空格等)
\D 表示非数字字符
\W 表示非字母、数字、下划线
\S 表示所有非空白字符
( ) 表示分组,可将一系列正则表达式看作一个整体,分组时可使用“l”表示或关系
^ 表示字符串开始
$ 表示字符串结束
. 匹配换行符外的任意一个字符
X 表示一个X
X? 表示0个或1个X
X* 表示0个或任意多个X
X+ 表示1个到任意多个X(大于等于1个X)
X{n} 表示n个X
X{n,} 表示n到任意多个X(大于等于n个X)
X{n,m} 表示n个到m个X

注:
①在程序中“\”字符是需要进行转义的,两个“\”实际上表示的是一个“\”,所以实际上"\\d"表示的是“\d”
②正则表达式就算不写^$也做完全匹配验证。

二、Pattern类和Matcher类

如果要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义。Pattern类主要作用是进行正则规范的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范。
(1)Pattern类
在Pattern类中直接使用正则表达式的正则规则即可完成相关的操作,Pattern类的常用方法如下所示:

public static Pattern compile(String regex)//指定正则表达式规则
public Matcher matcher(CharSequence input)//返回Matcher类实例
public String[] split(CharSequence input)//字符串拆分

在Pattern类中如果要取得Pattern类实例,则必须调用compile()方法。
Pattern类应用示例如下:

package com.haobi;

import java.util.regex.Pattern;

/*
 * 使用正则表达式验证(Pattern类的正则规范)
 */
public class Test1 {
	public static void main(String[] args) {
		String str = "1234567980";//此字符串由数字组成
		if(Pattern.compile("[0-9]+").matcher(str).matches()) {//使用正则表达式验证
			System.out.println("是由数字组成!");
		}else {
			System.out.println("不是由数字组成!");
		}
	}
}
//程序输出结果如下:
是由数字组成!

(2)Matcher类
如果要验证一个字符串是否符合规范,则可以使用Matcher类,Matcher类的常用方法如下所示:

public boolean matches()//执行验证
public String replaceAll(String replacement)//字符串替换

Matcher类应用示例如下:

package com.haobi;

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

/*
 * Matcher类的替换操作
 * 将全部的数字替换成_
 */
public class Test2 {
	public static void main(String[] args) {
		String str = "A1B256164C4564D4561E4654F";
		String pat = "\\d+";//定义替换规则
		Pattern p = Pattern.compile(pat);//实例化Pattern类
		Matcher m = p.matcher(str);//实例化Matcher类
		String newStr = m.replaceAll("_");//替换数字
		System.out.println(newStr);
	}
}

三、String类的正则API

(1)matches方法:(字符串匹配)

public boolean matches(String regex)
//使用给定的正则表达式来匹配当前字符串是否满足格式要求,满足返回true,不满足返回false。

(2)split方法:(字符串拆分)

public String[] split(String regex)
//将当前字符串中满足正则表达式的地方进行拆分,保留剩下的部分。

(3)replaceAll方法:(字符串替换)

public String replaceAll(String regex, String replacement)
//字符串中满足正则表达式的部分替换为给定的字符串

猜你喜欢

转载自blog.csdn.net/MaybeForever/article/details/89462570