一、介绍
Matcher
是正则表达式的一部分,它用于执行正则表达式的匹配操作。Matcher
通常与Pattern
类一起使用,Pattern
用于编译正则表达式,而Matcher
用于在文本中搜索和匹配该正则表达式。
二、具体用途
1)文本匹配:可以使用 Matcher
来查找文本中是否包含与正则表达式模式匹配的子字符串。这允许您执行高级的字符串搜索和匹配操作。
2)文本替换:Matcher
还可以用于替换文本中与正则表达式匹配的部分。您可以使用Matcher
的replaceAll
或replaceFirst
方法来替换匹配的文本。
3)文本分割:Matcher
还可以用于将文本拆分成多个部分,这些部分根据正则表达式模式的匹配来进行分割。您可以使用split
方法来执行这种操作。
三、demo
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexExample {
public static void main(String[] args) {
String text = "Hello, my email is [email protected] and my phone number is 123-456-7890.";
// 定义一个正则表达式模式,用于匹配电子邮件地址
Pattern pattern = Pattern.compile("\\w+@\\w+\\.\\w+");
// 创建Matcher对象,用于在文本中查找匹配项
Matcher matcher = pattern.matcher(text);
// 查找匹配项并输出它们
while (matcher.find()) {
System.out.println("Found: " + matcher.group());
}
}
}
result:
Found: [email protected]
四、常用写法
定义匹配规则:
private static Pattern PARAM_PATTERN = Pattern.compile("\\$\\{(.+?)\\}", Pattern.CASE_INSENSITIVE);
String content = messageTemplate.getContent();
Matcher paramMatcher = paramMatcher(content);
while (paramMatcher.find()) {
String param = paramMatcher.group(1);
if (StringUtil.isNoneBlank(param)) {
String v = params.get(param);
if (StringUtil.isNotBlank(v)) {
content = content.replace("${" + param + "}", v);
}
}
}
1.匹配 ${xxx}
正则表达式:
Pattern pattern = Pattern.compile("\\$\\{(.+?)\\}"); 或者 Pattern pattern = Pattern.compile("\\$\\{([^}]+)\\}");
2.使用matcher()方法进行匹配查找
Matcher matcher = pattern.matcher(text);
3.将结果打印
while (matcher.find()) {
System.out.println("Found: " + matcher.group());
}
public static Matcher paramMatcher(String str) {
Matcher matcher = PARAM_PATTERN.matcher(str);
return matcher;
}
demo:
String text = "Hello, ${name}my email is [email protected] and my phone number is 123-456-7890.cexample@email.${wlw}com";
Pattern pattern = Pattern.compile("\\$\\{([^}]+)\\}");
// 创建Matcher对象,用于在文本中查找匹配项
Matcher matcher = pattern.matcher(text);
// 查找匹配项并输出它们
while (matcher.find()) {
System.out.println("Found: " + matcher.group());
}
结果:
Found: ${name}
Found: ${wlw}
标签:匹配,matcher,正则表达式,Pattern,正则,Matcher,文本,模板 From: https://www.cnblogs.com/wlwtop/p/17782343.html