JAVA 正则 appendReplacement 和 appendTail 方法 笔记

本文通过一个具体的Java程序示例介绍了如何使用正则表达式进行字符串的查找与替换操作。程序首先定义了一个简单的正则表达式用于匹配输入字符串中的特定模式,然后通过Matcher类的appendReplacement和appendTail方法实现了匹配部分及其后的字符串的替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public Matcher appendReplacement(StringBuffer sb, String replacement) 

实现非终端添加和替换步骤。

public StringBuffer appendTail(StringBuffer sb) 

实现终端添加和替换步骤。

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

public class RegexMatches {
	private static String REGEX = "a*b";
	private static String INPUT = "aabhxabhxbhx^^!";
	private static String REPLACE = "-";

	public static void main(String[] args) {
		// 生成 Pattern 对象并且编译一个简单的正则表达式"a*b"->匹配0到多个的a和b的组合,例aab、ab、b都可匹配到
		Pattern p = Pattern.compile(REGEX);
		// 用 Pattern 类的 matcher() 方法生成一个 Matcher 对象
		Matcher m = p.matcher(INPUT);
		StringBuffer sb = new StringBuffer();
		while (m.find()) {
			//aab、ab、b被替换为-,并且将最后匹配到之前的子串(-hx-hx-)都添加到sb对象中,此时sb为-hx-hx-
			m.appendReplacement(sb, REPLACE);
		}
		//将最后匹配到后面的子串(hx^^!)添加到sb对象中,此时sb为-hx-hx-hx^^!
		m.appendTail(sb);
		System.out.println(sb.toString());
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值