📅  最后修改于: 2023-12-03 15:16:33.714000             🧑  作者: Mango
在Java编程中,模式引用是指使用正则表达式来搜索特定模式的方法。Java中的模式引用工具类为java.util.regex
。该类提供了不同的方法来搜索、匹配和替换字符串的指定模式。
Java中使用正则表达式的第一步是创建一个Pattern对象。Pattern.compile()
方法可以将字符串转换为一个Pattern对象。以下是该方法的示例:
Pattern pattern = Pattern.compile("java");
一旦有了Pattern,就可以使用Matcher来搜索和匹配特定的字符串。Matcher类使用Pattern来搜索或匹配一个字符串。以下是示例:
Pattern pattern = Pattern.compile("java");
Matcher matcher = pattern.matcher("Java is a programming language.");
if (matcher.find()) {
System.out.println("Match found!");
}
else {
System.out.println("Match not found.");
}
上面的示例将输出“Match found!”,因为在字符串“Java is a programming language.”中匹配到了“java”。
我们也可以使用Matcher.matches()
方法来在整个字符串中查找匹配项,而不是只在字符串中搜索第一个匹配。
Pattern pattern = Pattern.compile("java");
Matcher matcher = pattern.matcher("Java is a programming language.");
if (matcher.matches()) {
System.out.println("Match found!");
} else {
System.out.println("Match not found.");
}
上面的示例将输出“Match not found.”,因为“Java is a programming language.”不完全匹配“java”。
除此之外,还有一些其他的方法可以在Matcher中使用:
Matcher.replaceFirst()
:用Replacement字符串替换第一个匹配。Matcher.replaceAll()
:用Replacement字符串替换所有匹配项。Matcher.group()
:返回最后一个匹配的子串。以下是这些方法的示例:
Pattern pattern = Pattern.compile("java");
Matcher matcher = pattern.matcher("Java is a programming language.");
String replaced = matcher.replaceFirst("JAVA");
System.out.println(replaced); // 输出"JAVA is a programming language."
replaced = matcher.replaceAll("JAVA");
System.out.println(replaced); // 输出"JAVA is a programming language."
matcher.find();
String match = matcher.group(); // 返回最后一个匹配的子串
System.out.println(match); // 输出"java"
以下是一个示例,它搜索一段文本中的所有电子邮件地址:
String text = "Contact us at info@example.com or support@example.com.";
String patternString = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b";
Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println("Found: " + matcher.group());
}
上面的示例将输出:
Found: info@example.com
Found: support@example.com
这里的模式字符串匹配电子邮件地址的通用格式,并且将忽略大小写。