JAVA正则表达式 Pattern和Matcher

合集下载

java正则匹配脱敏处理__概述及解释说明

java正则匹配脱敏处理__概述及解释说明

java正则匹配脱敏处理概述及解释说明1. 引言1.1 概述本文主要介绍了Java正则表达式在脱敏处理中的应用。

随着信息安全意识的提高和法律法规的出台,对敏感数据的保护要求越来越高。

脱敏处理是一种常见的数据保护方法,通过对敏感数据进行格式转换、部分字符替换等操作,可以有效地保护用户隐私。

而Java正则表达式作为一种强大的模式匹配工具,可以帮助我们在字符串中快速定位和匹配需要脱敏的子串。

1.2 文章结构本文分为以下几个部分进行详细介绍:2. Java正则表达式介绍:先对Java正则表达式进行基本概念的介绍,然后探讨其常用语法和匹配规则,为后续的实践提供基础知识。

3. 脱敏处理概述:首先解释什么是脱敏处理,并介绍其应用场景和实现方法,让读者对脱敏处理有一个全面的认识。

4. Java正则匹配脱敏处理实践:详细介绍了使用Java正则表达式进行脱敏处理的实际例子。

包括如何利用正则表达式实现数据脱敏的功能,以及提供完整的代码实现。

5. 结论与展望:对本文进行总结回顾,指出Java正则表达式在脱敏处理中的优势和不足,并展望未来在数据保护领域的发展方向。

最后,以简短的结束语来结束本文。

1.3 目的本文旨在帮助读者了解Java正则表达式在脱敏处理中的应用。

通过介绍Java正则表达式的基本概念、常用语法和匹配规则,以及对脱敏处理概述和实践进行详细讲解,读者可以掌握使用Java正则表达式进行脱敏处理的方法和技巧。

同时,本文还探讨了Java正则表达式在脱敏处理中存在的一些挑战,并提供了对未来发展方向的展望。

希望读者通过本文的学习,能够更好地保护用户隐私和数据安全。

2. Java正则表达式介绍:2.1 基本概念:Java正则表达式是一种强大的字符串匹配工具,它可以用来在文本中查找和操作符合特定模式的字符串。

正则表达式由特殊字符和普通字符组成,通过它们的组合来描述一个规则。

Java提供了java.util.regex包用于处理正则表达式。

pattern和matcher.group用法

pattern和matcher.group用法

pattern和matcher.group用法在Java编程语言中,字符串操作是非常重要的一部分。

在字符串处理过程中,经常会用到正则表达式。

正则表达式是一种描述字符模式的一种语言,可以用于实现各种匹配字符串、替换字符等功能。

Java中的正则表达式也提供了Pattern和Matcher类,可以方便地实现正则表达式相关操作。

1. Pattern类Pattern类是Java中的正则表达式引擎。

它定义了一些方法,用于解析和匹配正则表达式。

在使用Pattern类时需要使用正则表达式的语法。

在Java中,通过调用Pattern类的compile()或者compile(String regex)方法可以创建一个Pattern对象,用于存储和管理正则表达式。

compile()方法无参数时,创建一个Pattern对象,表示一个空正则表达式。

运用Pattern类的matcher(String str)方法可以根据正则表达式匹配模式对指定字符串进行匹配。

matcher方法返回一个Matcher对象,用于进行匹配。

方法名 | 作用matches(String regex, CharSequence input) | 判断指定字符串是否符合正则表达式的规则。

Matcher类中的常用方法:find() | 找到下一个匹配的子串,并返回true或false。

start() | 返回上一次匹配操作的起始字符位置。

group(int group) | 返回与上一次匹配操作指定组匹配的子串。

3. 示例下面通过一个例子来展示Pattern和Matcher的简单用法。

假设有一组数据,其格式为“姓名:年龄:性别”。

现在需要对数据进行分析,要求输出所有女性的姓名和年龄。

代码如下:```import java.util.regex.*;在上述代码中,首先通过Pattern类来创建一个正则表达式并存储在pattern对象中。

创建正则表达式时,使用[]来包含需要匹配的内容,使用^和$来限定匹配的内容开头和结尾。

Java使用正则表达式检索、替换String中特定字符和正则表达式的一切

Java使用正则表达式检索、替换String中特定字符和正则表达式的一切

Java使⽤正则表达式检索、替换String中特定字符和正则表达式的⼀切引⾔String这个对于程序原来说⼀定是最熟悉不过的,很多时候我们都习惯去使⽤String的原⽣⽅法去完成查找字符串、替换、删除,⽽正则表达式由于略显苦涩的语法常常被⼈忽略,其实很多时候使⽤正则表达式可以提⾼不少性能和节省资源。

⼀、正则表达式简述正则表达式正则表达是Java中⽐较⽭盾的知识点,因为使⽤起来可以很简单也可以相当地有难度,但是对于字符串操作来说应⽤得当则事半功倍,字符串查找,搜索,匹配,替换等等,正则表达式⽆所不能。

⽽所谓正则表达式本质就是⼀个字符串(这个字符串按照⼀定的语法和规范被构造出来作为限定条件),其主要参与者——Pattern和Matcher:Pattern是Java正则表达式API中的主要⼊⼝,是程序语⾔中对这个特殊正则字符串的编译表⽰,需要使⽤正则表达式,第⼀步都是从构造Pattern 类开始,⽽Matcher是输⼊字符串进⾏解释和匹配操作的引擎,通过解释 Pattern 对 Character sequence 执⾏匹配操作(即Matcher负责完成字符串的查找、匹配、替换等操作。

)⼆、正则表达式基本语法1、预留字符限定说明符.任意英⽂字母⽐如a-z,表⽰从a到z当该字符紧跟在任何⼀个其他限制符(*,+,?,{n},{n,},{n,m})后⾯时,匹配模式是⾮贪婪的。

⾮贪婪模式尽可能少的匹配所搜索的字符串,⽽默认的贪婪模式则尽可能多的匹配所搜索的字符串。

例如,对于字符串“oooo”,“o+?”将匹配单个“o”,⽽“o+”将匹配所有“o”。

\反斜杠, 单独的反斜杠做为转义字符,与其他特殊字符⼀起使⽤。

如果想匹配反斜杠本⾝,需要转义。

两个反斜杠实际匹配⼀个反斜杠n字符的8进制表⽰.n 在0⾄7之间取值nn字符的8进制表⽰.n 在0⾄7之间取值mnn字符的8进制表⽰. m 在0⾄3之间取值, n 在0⾄7之间取值hh字符的16进制表⽰.\uhhhh字符的16进制表⽰ 0xhhhh. 对应unicode 编码字符\t缩进符.\n换⾏符 (unicode: ‘\u000A')\r回车符 (unicode: ‘\u000D')\f制表符 (unicode: ‘\u000C')\a警报(铃声)字符 (unicode: ‘\u0007′)\e转义符 (unicode: ‘\u001B')\cx控制符 x\d匹配任意数字 [0-9]\D匹配任意⾮数字 [^0-9]\s匹配任意空⽩符 (空格, 缩进, 换⾏,回车)\S匹配任意⾮空⽩符\w匹配任意单词\W匹配任意⾮单词2、设置指定限定条件**[]**(即“[]”表⽰的是中括符⾥的内容是条件)限定符说明[a-z]匹配⼩写a to z范围中任⼀个字符,⼜如[abc] 匹配 a, 或 b 或 c[A-Z]匹配⼤写A to Z范围中任⼀个字符[a-zA-Z]匹配⼩写a to z或⼤写A to Z范围中⼀个字符[0-9]匹配⼩写0 to 9范围中⼀个字符[0-9a-z]匹配⼩写0 to 9或a to z范围中⼀个字符[0-9[a-z]]匹配⼩写0 to 9或a to z范围中⼀个字符(交集)[^abc]匹配不是a,b,c 的字符,是否定匹配[^abc]匹配不是a,b,c 的字符,是否定匹配限定符说明[a-zA-Z]匹配a 到 z ,A到Z 直接的字符,是范围匹配[a-d[m-p]]匹配a到d之间字符或 m到p之间字符,是并集匹配[a-z&&[def]]匹配 d, e, 或 f. 是交集匹配 (这⾥是在范围 a-z和字符def之间取交集).[a-z&&[^bc]]匹配a-z 之间所有字符,排除bc的字符。

java gu'h正则表达式

java gu'h正则表达式

java gu'h正则表达式Java正则表达式是一种强大的工具,用于在文本字符串中匹配、查找和替换特定模式的文本。

它是Java编程语言中的一个内置类库,提供了许多功能强大的方法和模式来处理字符串。

本文将详细介绍Java正则表达式的用法和特性。

一、正则表达式的概念和基本语法正则表达式是一种用于描述和匹配文本模式的字符串。

它由普通字符(例如字母、数字和标点符号)和特殊字符(称为元字符)组成。

元字符具有特殊的含义,用于匹配特定的字符或字符集合。

在Java中,使用正则表达式需要使用Pattern和Matcher两个类。

Pattern类表示正则表达式的编译表示形式,而Matcher类用于对输入字符串执行匹配操作。

下面是一些常用的正则表达式元字符及其含义:1. ".":匹配任意字符(除了换行符)2. "^":匹配字符串的开始3. "$":匹配字符串的结束4. "*":匹配前面的字符零次或多次5. "+":匹配前面的字符一次或多次6. "?":匹配前面的字符零次或一次7. "[]":匹配方括号内的任意一个字符8. "[^]":匹配不在方括号内的任意一个字符9. "\d":匹配任意一个数字字符10. "\D":匹配任意一个非数字字符11. "\w":匹配任意一个单词字符(字母、数字、下划线)12. "\W":匹配任意一个非单词字符13. "\s":匹配任意一个空白字符(空格、制表符、换行符等)14. "\S":匹配任意一个非空白字符二、正则表达式的匹配方法在Java中,可以使用matches()、find()和replaceAll()等方法进行正则表达式的匹配操作。

java正则match用法总结

java正则match用法总结

标题:深度挖掘Java正则match用法在日常编程中,使用正则表达式是一种常见的需求。

在Java中,我们可以通过java.util.regex包提供的Matcher类来实现对字符串的正则匹配。

本文将从多个方面对Java正则match用法进行深度挖掘和总结,以便读者更全面、深入地理解这一主题。

一、简介在Java中,java.util.regex包提供了用于实现正则表达式功能的类和接口。

Matcher类是其中的一个重要类,它可以对字符串进行匹配操作并提供丰富的API来实现正则表达式的高级功能。

二、基本用法1. 创建Pattern对象:在使用Matcher类进行匹配之前,首先需要创建Pattern对象来表示我们希望匹配的正则表达式。

2. 获取Matcher对象:通过调用Pattern对象的matcher方法,可以得到一个Matcher对象,用于对字符串进行匹配操作。

3. 匹配操作:Matcher类提供了多个方法来进行匹配操作,例如find、start、end等方法可以用于查找符合正则表达式的子串并获取其起始位置和结束位置。

三、高级用法1. 匹配模式:Matcher类支持多种匹配模式,包括贪婪匹配、勉强匹配和占有匹配等,可以通过在正则表达式中添加特定的符号来实现这些匹配模式。

2. 分组捕获:通过在正则表达式中使用圆括号,可以实现对匹配结果的分组捕获,Matcher类提供了group方法来获取每个分组的匹配结果。

3. 替换操作:除了匹配操作,Matcher类还提供了replaceFirst和replaceAll方法,用于对字符串进行替换操作。

四、个人观点对于Java正则match用法,我个人认为需要结合实际场景进行学习和应用。

在实际开发中,我们可能会遇到各种复杂的匹配需求,因此熟练掌握Matcher类的用法对于提高编程效率和代码质量非常重要。

我建议在学习过程中多做练习,通过实际操作来加深对Matcher类的理解和掌握。

pattern.matches正则表达解析

pattern.matches正则表达解析

pattern.matches正则表达解析正则表达式是一种通用的文本匹配方式,在不同的编程语言和软件工具中都被广泛应用。

Java语言中也提供了对正则表达式的支持,其最常用的方式是使用Pattern和Matcher两个类进行正则表达式的解析和匹配。

在这篇文章中,我们将详细探讨Pattern.matches()方法的使用,以及解析正则表达式的一些基本概念。

一、Pattern.matches()方法Pattern.matches()是Java语言中解析正则表达式的一个方法,它的定义如下:``` public static boolean matches(String regex, CharSequence input) ```其中,regex表示正则表达式的字符串,input表示要匹配的字符串。

该方法的返回值是一个boolean类型,表示输入字符串是否匹配正则表达式。

下面,我们来看一个例子:```java String regex = "a.*b"; String input = "abcdbb"; boolean isMatch = Pattern.matches(regex, input); ``` 该正则表达式含义是以a开头,以b结尾,并且中间可以是任意字符。

在这个例子中,输入字符串是"abcdbb",符合该正则表达式,因此isMatch的值为true。

常见的正则表达式符号包括:符号 | 含义 --- | --- . | 匹配任意单个字符,但换行符除外 * | 匹配0个或多个前面的字符 + | 匹配1个或多个前面的字符 ? | 匹配0个或1个前面的字符 \ | 转义字符,用于匹配特殊符号 [] | 匹配方括号中的任意一个字符,如[a-z]表示匹配任意一个小写字母 [^] | 匹配方括号中除了指定字符以外的任意一个字符,如[^0-9]表示匹配任意一个非数字字符当然,在正则表达式中还可以包含分组、捕获、后向引用等更为复杂的语法,这里就不在赘述。

JavaPattern与Matcher字符串匹配案例详解

JavaPattern与Matcher字符串匹配案例详解

JavaPattern与Matcher字符串匹配案例详解Pattern类定义public final class Pattern extends Object implementsSerializable正则表达式的编译表⽰形式。

⽤于编译正则表达式后创建⼀个匹配模式。

指定为字符串的正则表达式必须⾸先被编译为此类的实例。

然后,可将得到的模式⽤于创建Matcher对象,依照正则表达式,该对象可以与任意字符序列匹配。

执⾏匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同⼀模式。

因此,典型的调⽤顺序是:Pattern p =pile("a*b");Matcher m =p.matcher("aaaaab");boolean b = m.matches();在仅使⽤⼀次正则表达式时,可以⽅便地通过此类定义matches⽅法。

此⽅法编译表达式并在单个调⽤中将输⼊序列与其匹配。

语句:boolean b =Pattern.matches("a*b", "aaaaab");等效于上⾯的三个语句,尽管对于重复的匹配⽽⾔它效率不⾼,因为它不允许重⽤已编译的模式。

此类的实例是不可变的,可供多个并发线程安全使⽤。

Matcher类的实例⽤于此⽬的则不安全。

Pattern类⽅法详解1、Pattern complie(String regex):编译正则表达式,并创建Pattern类。

由于Pattern的构造函数是私有的,不可以直接创建,所以通过静态的简单⼯⼚⽅法compile(String regex)⽅法来创建,将给定的正则表达式编译并赋予给Pattern类。

2、String pattern():返回正则表达式的字符串形式。

其实就是返回plile(Stringregex)的regex参数。

⽰例如下:String regex ="\\?|\\*";Pattern pattern= pile(regex);StringpatternStr = pattern.pattern();//返回\?\*3、Pattern compile(String regex, int flags)。

java正则表达式用法示例

java正则表达式用法示例

java正则表达式用法示例Java正则表达式用法示例正则表达式是一种强大的匹配文本模式的工具。

在Java编程中,使用正则表达式可以快速、简单地筛选、匹配、替换字符串。

下面将介绍Java正则表达式的用法。

1. 匹配字符使用正则表达式可以匹配一个或多个字符,例如:String str = "hello world";Pattern pattern = pile("world"); // 创建一个匹配"world"的正则表达式Matcher matcher = pattern.matcher(str); // 在字符串中匹配正则表达式boolean result = matcher.find(); // 查找是否有匹配System.out.println(result); // 输出true2. 匹配字符集合在正则表达式中,使用方括号([])来表示一个字符集合。

例如:String str = "hello world";Pattern pattern = pile("[aeiou]"); // 表示匹配任何一个元音字母Matcher matcher = pattern.matcher(str);while (matcher.find()) { // 循环查找匹配的字符String match = matcher.group(); // 获取匹配的字符System.out.println(match);}3. 匹配数量在正则表达式中,使用特殊字符表示数量。

例如:String str = "hello world";Pattern pattern = pile("l{2}"); // 表示匹配连续两个l Matcher matcher = pattern.matcher(str);boolean result = matcher.find();System.out.println(result);4. 匹配特殊字符在正则表达式中,一些字符具有特殊意义,例如点(.)表示匹配任意单个字符,反斜杠(\)用于转义特殊字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。

1.简介:java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。

它包括两个类:Pattern和Matcher 。

Pattern:一个Pattern是一个正则表达式经编译后的表现模式。

Matcher:一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。

首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。

以下我们就分别来看看这两个类:2.Pattern类:Pattern的方法如下:static Pattern compile(String regex)将给定的正则表达式编译并赋予给Pattern类static Pattern compile(String regex, int flags)同上,但增加flag参数的指定,可选的flag参数包括:CASE INSENSITIVE,MULTILINE,DOTALL,UNICODE CASE, CANON EQint flags()返回当前Pattern的匹配flag参数.Matcher matcher(CharSequence input)生成一个给定命名的Matcher对象static boolean matches(String regex, CharSequence input)编译给定的正则表达式并且对输入的字串以该正则表达式为模开展匹配,该方法适合于该正则表达式只会使用一次的情况,也就是只进行一次匹配工作,因为这种情况下并不需要生成一个Matcher实例。

String pattern()返回该Patter对象所编译的正则表达式。

String[] split(CharSequence input)将目标字符串按照Pattern里所包含的正则表达式为模进行分割。

String[] split(CharSequence input, int limit)作用同上,增加参数limit目的在于要指定分割的段数,如将limi设为2,那么目标字符串将根据正则表达式分为割为两段。

一个正则表达式,也就是一串有特定意义的字符,必须首先要编译成为一个Pattern类的实例,这个Pattern对象将会使用matcher() 方法来生成一个Matcher实例,接着便可以使用该 Matcher实例以编译的正则表达式为基础对目标字符串进行匹配工作,多个Matcher是可以共用一个Pattern对象的。

现在我们先来看一个简单的例子,再通过分析它来了解怎样生成一个Pattern对象并且编译一个正则表达式,最后根据这个正则表达式将目标字符串进行分割:import java.util.regex.*;public class Replacement{public static void main(String[] args) throws Exception {// 生成一个Pattern,同时编译一个正则表达式Pattern p = pile("[/]+");//用Pattern的split()方法把字符串按"/"分割String[] result = p.split("Kevin has seen《LEON》seveal times,because it is a good film."+"/ 凯文已经看过《这个杀手不太冷》几次了,因为它是一部"+"好电影。

/名词:凯文。

");for (int i=0; i<result.length; i++)System.out.println(result[i]);}}输出结果为:Kevin has seen《LEON》seveal times,because it is a good film.凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。

名词:凯文。

很明显,该程序将字符串按"/"进行了分段。

我们以下再使用 split(CharSequence input, int limit)方法来指定分段的段数,程序改动为:tring[] result = p.split("Kevin has seen《LEON》seveal times,because it is a good film./ 凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。

/名词:凯文。

",2);这里面的参数"2"表明将目标语句分为两段。

输出结果则为:Kevin has seen《LEON》seveal times,because it is a good film.凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。

/名词:凯文。

3.Matcher类:Matcher方法如下: Matcher appendReplacement(StringBuffer sb, String replacement)将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。

StringBuffer appendTail(StringBuffer sb)将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。

int end()返回当前匹配的子串的最后一个字符在原目标字符串中的索引位置。

int end(int group)返回与匹配模式里指定的组相匹配的子串最后一个字符的位置。

boolean find()尝试在目标字符串里查找下一个匹配子串。

boolean find(int start)重设Matcher对象,并且尝试在目标字符串里从指定的位置开始查找下一个匹配的子串。

String group()返回当前查找而获得的与组匹配的所有子串内容String group(int group)返回当前查找而获得的与指定的组匹配的子串内容int groupCount()返回当前查找所获得的匹配组的数量。

boolean lookingAt()检测目标字符串是否以匹配的子串起始。

boolean matches()尝试对整个目标字符展开匹配检测,也就是只有整个目标字符串完全匹配时才返回真值。

Pattern pattern()返回该Matcher对象的现有匹配模式,也就是对应的Pattern 对象。

String replaceAll(String replacement)将目标字符串里与既有模式相匹配的子串全部替换为指定的字符串。

String replaceFirst(String replacement)将目标字符串里第一个与既有模式相匹配的子串替换为指定的字符串。

Matcher reset()重设该Matcher对象。

Matcher reset(CharSequence input)重设该Matcher对象并且指定一个新的目标字符串。

int start()返回当前查找所获子串的开始字符在原目标字符串中的位置。

int start(int group)返回当前查找所获得的和指定组匹配的子串的第一个字符在原目标字符串中的位置。

(光看方法的解释是不是很不好理解?不要急,待会结合例子就比较容易明白了)一个Matcher实例是被用来对目标字符串进行基于既有模式(也就是一个给定的Pattern所编译的正则表达式)进行匹配查找的,所有往Matcher的输入都是通过CharSequence接口提供的,这样做的目的在于可以支持对从多元化的数据源所提供的数据进行匹配工作。

我们分别来看看各方法的使用:★matches()/lookingAt ()/find():一个Matcher对象是由一个Pattern对象调用其matcher()方法而生成的,一旦该Matcher对象生成,它就可以进行三种不同的匹配查找操作:matches()方法尝试对整个目标字符展开匹配检测,也就是只有整个目标字符串完全匹配时才返回真值。

lookingAt ()方法将检测目标字符串是否以匹配的子串起始。

find()方法尝试在目标字符串里查找下一个匹配子串。

以上三个方法都将返回一个布尔值来表明成功与否。

★replaceAll ()/appendReplacement()/appendTail():Matcher类同时提供了四个将匹配子串替换成指定字符串的方法:replaceAll()replaceFirst()appendReplacement()appendTail()replaceAll()与replaceFirst()的用法都比较简单,请看上面方法的解释。

我们主要重点了解一下appendReplacement()和appendTail()方法。

appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里,而 appendTail(StringBuffer sb) 方法则将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。

例如,有字符串fatcatfatcatfat,假设既有正则表达式模式为"cat",第一次匹配后调用 appendReplacement(sb,"dog"),那么这时StringBuffer sb的内容为fatdog,也就是fatcat中的cat被替换为dog并且与匹配子串前的内容加到sb里,而第二次匹配后调用 appendReplacement(sb,"dog"),那么sb的内容就变为fatdogfatdog,如果最后再调用一次 appendTail(sb),那么sb最终的内容将是fatdogfatdogfat。

还是有点模糊?那么我们来看个简单的程序://该例将把句子里的"Kelvin"改为"Kevin"import java.util.regex.*;public class MatcherTest{public static void main(String[] args) throws Exception {//生成Pattern对象并且编译一个简单的正则表达式"Kelvin"Pattern p = pile("Kevin");//用Pattern类的matcher()方法生成一个Matcher对象Matcher m = p.matcher("Kelvin Li and Kelvin Chan are both working in Kelvin Chen's KelvinSoftShop company");StringBuffer sb = new StringBuffer();int i=0;//使用find()方法查找第一个匹配的对象boolean result = m.find();//使用循环将句子里所有的kelvin找出并替换再将内容加到sb里while(result) {i++;m.appendReplacement(sb, "Kevin");System.out.println("第"+i+"次匹配后sb的内容是:"+sb);//继续查找下一个匹配对象result = m.find();}//最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;m.appendTail(sb);System.out.println("调用m.appendTail(sb)后sb的最终内容是:"+sb.toString());}}最终输出结果为:第1次匹配后sb的内容是:Kevin第2次匹配后sb的内容是:Kevin Li and Kevin第3次匹配后sb的内容是:Kevin Li and Kevin Chan are both working in Kevin 第4次匹配后sb的内容是:Kevin Li and Kevin Chan are both working in Kevin Chen's Kevin调用m.appendTail(sb)后sb的最终内容是:Kevin Li and Kevin Chan are both working in Kevin Chen's KevinSoftShop company.看了上面这个例程是否对appendReplacement(),appendTail()两个方法的使用更清楚呢,如果还是不太肯定最好自己动手写几行代码测试一下。

相关文档
最新文档