Java简单的正则表达式匹配操作

技术博客 (311) 2023-09-16 15:39:10

简单地利用正则表达式进行匹配操作

要明确,正则表达式是用来方便地匹配字符串的

1. 首先要创建一个匹配模式

一个匹配模式就是一个对象,这个对象由Pattern类来帮我们造要注意Pattern的构造方法是私有的,所以没办法直接new,但是可以通过它的一个静态方法compile()来创建。
Pattern里还有一个matcher方法,返回一个Matcher的对象,该方法的参数是一个你想匹配的那个字符串。详细见下文Matcher。
创建一个匹配数字字符的模式:
Pattern pattern = Pattern.compile("\\d+");//创建匹配数字字符的模式
匹配模式的意思就是一个模板,用几个符号表示你想匹配的东西,就叫做匹配模式。
		
	例如:
		
	\\d+,代表匹配一个或多个字符,其中‘\d’代表匹配数字,等效于[0-9]。
	
	反斜杠用来转义,因为\d本身有特殊的含义,所以让最前面
	的那个反斜杠将第二个反斜杠变为一个字符'\',这样就可以使\d是一个符号了
	
	’+‘代表匹配前面的字符或子表达式一次或多次,比如:"wsx+"可以和
	"wsxw"、"wsx"、"swsxx"等等匹配,不可以和"ws"、"sxw"等等匹配

2. 接下来就是选择匹配的对象(字符串)

我们会用到工具类Matcher,中文就是匹配的意思。

Matcher的一个实例代表一个用来操作匹配字符串的对象。

Matcher常用的方法有find()、start()、end()

	<1> find()用于查找是否有想找的那个字符,有的话返回true
	<2> start()返回上一个匹配项的起始索引
	<3> end()返回上一个匹配项的末尾索引
	
	这三种方法可以与循环结合起来,没有匹配的话它会自动迭代,继续往下找,
直至匹配结束。

3. 接下来就是去执行匹配操作

由于find()返回一个布尔值,所以我们可以把它直接当作while的条件。

下面是一个从字符串中获得数字的一个实例:

String str = "cheems123cheems456cheems789";


//1.创建匹配模式
Pattern pattern = Pattern.compile("\\d+");//匹配一个或多个数字字符

//2.选择匹配对象
Matcher matcher = pattern.matcher(str);
//与谁匹配?与参数字符串str匹配


int count = 0;
while (matcher.find())//matcher.find()用于查找是否有这个字符,有的话返回true
{ 
   
	  System.out.println("第" + (++count) + "次找到");
	  //start()返回上一个匹配项的起始索引
	  //end()返回上一个匹配项的末尾索引。
  	  System.out.println(str.substring(matcher.start(),matcher.end()));
}

结果:
Java简单的正则表达式匹配操作 (https://mushiming.com/) 技术博客 第1张

由于是初学者,如有错误请大力指出,我一定虚心接受

参考:Java简单的正则表达式匹配操作

THE END

发表回复