📅  最后修改于: 2023-12-03 14:42:58.256000             🧑  作者: Mango
在Java中,可以使用String
类和CharSequence
接口中的模式匹配方法来查找字符串中与给定模式匹配的部分。
String类中的模式匹配方法有三种,分别是matches()
、replaceAll()
和replaceFirst()
。
matches()
方法用于测试字符串是否与给定的正则表达式匹配。如果匹配成功,则返回true
;否则返回false
。
String str = "Hello World!";
boolean isMatched = str.matches("H.*d!");
System.out.println(isMatched); // true
在上面的示例中,使用正则表达式H.*d!
来匹配字符串str
,匹配成功,输出结果为true
。
replaceAll()
方法用于用给定的替换字符串替换匹配的子字符串。可以使用正则表达式指定要替换的子字符串。
String str = "Hello Java!";
String replacedStr = str.replaceAll("Java", "World");
System.out.println(replacedStr); // Hello World!
在上面的示例中,使用正则表达式Java
来匹配str
中的子字符串,并使用World
来替换匹配的子字符串。输出结果为Hello World!
。
replaceFirst()
方法与replaceAll()
方法类似,但是只替换第一个匹配的子串。
String str = "Hello Java and Java!";
String replacedStr = str.replaceFirst("Java", "World");
System.out.println(replacedStr); // Hello World and Java!
在上面的示例中,使用正则表达式Java
来匹配str
中的第一个子字符串,并使用World
来替换匹配的子字符串。输出结果为Hello World and Java!
。
CharSequence接口中定义了三个模式匹配方法,分别是charAt()
、subSequence()
和matches()
。
charAt()
方法返回指定索引处的字符。可以用于从匹配字符串中提取字符。
String str = "Hello World!";
Pattern pattern = Pattern.compile("W.*d!");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
char c = matcher.group().charAt(4);
System.out.println(c); // d
}
在上面的示例中,使用正则表达式W.*d!
来匹配字符串str
,匹配成功后获取匹配的结果,并使用charAt()
方法获取匹配结果中索引为4的字符,即d
。输出结果为d
。
subSequence()
方法返回指定范围内的字符序列。可以用于从匹配字符串中提取子字符串。
String str = "Hello World!";
Pattern pattern = Pattern.compile("W.*d!");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
CharSequence subStr = matcher.group().subSequence(4, 6);
System.out.println(subStr); // dl
}
在上面的示例中,使用正则表达式W.*d!
来匹配字符串str
,匹配成功后获取匹配的结果,并使用subSequence()
方法获取匹配结果中索引为4到6的子字符串,即dl
。输出结果为dl
。
matches()
方法用于测试指定的字符序列是否与给定的正则表达式匹配。如果匹配成功,则返回true
;否则返回false
。
CharSequence str = "Hello World!";
boolean isMatched = Pattern.matches("H.*d!", str);
System.out.println(isMatched); // true
在上面的示例中,使用正则表达式H.*d!
来匹配字符序列str
,匹配成功,输出结果为true
。
以上就是Java中模式匹配的方法和示例。这些方法可帮助程序员在处理字符串时更加灵活自如。