JAVA Pattern与Matcher的使用

正则、切割、替换等其他字符串操作:https://blog.csdn.net/weixin_43732798/article/details/100081039

介绍

Pattern和Matcher用于正则表达式的操作。

Pattern有两种创建方式

  • Pattern p = Pattern.compile("规则");
  • Pattern p = Pattern.compile("规则", "模式");

Matcher通常使用Pattern的对象进行创建

  • Matcher m = p.matcher("要操作的字符串");

Matcher的常用函数

boolean matcher()---尝试将整个字符串与规则进行匹配

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

public class Main {
	
	public static void main(String[] args) {
		Pattern p = Pattern.compile("\\d+");//匹配1个以上的数字
		Matcher m = p.matcher("12345");
		System.out.println(m.matches());//输出true
	}
	
}

boolean find()---尝试查找与该模式匹配的输入序列的下一个子序列。 

String group()---返回由以前匹配操作所匹配的输入子序列。 

int start() 返回以前匹配的初始索引。

int end() 返回最后匹配字符之后的偏移量。 

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

public class Main {
	
	public static void main(String[] args) {
		Pattern p = Pattern.compile("\\d+");//匹配1个以上的数字
		Matcher m = p.matcher("12a3456a7");
		while ( m.find() ) {
			System.out.println(m.group()+"\t位置:["+m.start()+", "+m.end()+"]");
		}
	}
}
输出
12	位置:[0, 2]
3456	位置:[3, 7]
7	位置:[8, 9]

int groupCount()---返回此匹配器模式中的捕获组数。 

String group(int group)---返回在以前匹配操作期间由给定组捕获的输入子序列。 

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

public class Main {
	
	public static void main(String[] args) {
		//三个捕获组分别捕获数字,大写字母,小写字母
		Pattern p = Pattern.compile("(\\d+)([A-Z]+)([a-z]+)");
		Matcher m = p.matcher("123ABCabc");
		if ( m.matches() ) {
			for ( int i = 1; i <= m.groupCount(); i++ ) {
				System.out.println(m.group(i));//输出所有捕获组
			}
		}
	}
}
输出
123
ABC
abc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值