CodeGym /Java 博客 /随机的 /Java 正则表达式 - 匹配器
John Squirrels
第 41 级
San Francisco

Java 正则表达式 - 匹配器

已在 随机的 群组中发布

Java 中的正则表达式是什么?

正则表达式 或正则表达式是形成模式的字符序列。当您搜索任何数据时,您可以使用此专用模式来查找匹配的字符串。它可以是简单的单个字符,也可以是更复杂的模式。在 Java 中,您有一个 java regex 包,其中包含提供使用正则表达式进行模式搜索和操作的功能的类。该包通过以下方式导入到您的代码中。

import java.util.regex.*;

Java 正则表达式 - 匹配器

Java Matcher 类提供与正则表达式的模式匹配。
这行代码导入 regex 包中可用的所有类。如果您只想导入Matcher类,可以使用以下代码行导入它。

import java.util.regex.Matcher;
java regex 包具有三个类:
  1. 模式类:定义需要搜索的模式。

  2. Matcher类:匹配文本中的模式并找到它。

  3. PatternSyntaxException类:指示正则表达式中的任何语法错误。

它的工作原理非常简单。首先,从正则表达式创建一个Pattern对象来定义模式。然后使用Pattern对象创建一个Matcher对象。Matcher有很多方法。其中最重要的是matches()方法,如果正则表达式与文本匹配,则该方法返回true ,否则返回false。Java Matcher类有许多其他有用的方法来替换输入字符串中的文本,这些方法执行比java 中的Replace()方法更复杂的功能。java中只有两个replace()方法,而Matcher类为此任务提供了多个函数。

Java 匹配器类方法

下面描述了一些 Java Matcher类方法。
  • boolean matches() —如果正则表达式与模式匹配,则返回true 。

  • boolean find() — 查找与该模式匹配的下一个正则表达式。

  • boolean find(int start) — 查找与给定开头的模式匹配的下一个正则表达式。

  • int start() — 返回匹配的起始索引。

  • int end() — 返回所返回匹配的结束索引。

  • int groupCount() — 返回匹配中的组总数。

  • String ReplaceAll(String replacement) — 用给定的替换替换匹配的每个子序列。

  • String ReplaceFirst(String replacement) — 用给定的替换替换匹配的第一个子序列。

Java 匹配器示例

Matcher类有许多有用的方法,但是,我们将进一步查看matches()方法的具体示例。

使用 matches() 方法

下面演示了matches()方法的Java匹配器示例。

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

public class Example {

	public static void main(String[] args) {

		String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple" 
		String firstCheck = "Apples";
		String secondCheck = "Apple";
		String thirdCheck = "apple";
		String fourthCheck = "An apple a day keeps the doctor away.";
		String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";

		
		Pattern pattern = Pattern.compile(regexPattern);
		Matcher matcher1 = pattern.matcher(firstCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + firstCheck);
		System.out.println("Output for matches(): " + matcher1.matches() + "\n");

		Matcher matcher2 = pattern.matcher(secondCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + secondCheck);
		System.out.println("Output for matches(): " + matcher2.matches() + "\n");

		Matcher matcher3 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + thirdCheck);
		System.out.println("Output for matches(): " + matcher3.matches() + "\n");
		
		Matcher matcher4 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fourthCheck);
		System.out.println("Output for matches(): " + matcher4.matches() + "\n");
		
		Matcher matcher5 = pattern.matcher(fifthCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fifthCheck);
		System.out.println("Output for matches(): " + matcher5.matches() + "\n");
	}
}
输出
模式是:(.*)apple(.*) 要检查的文本是:Apples matches() 的输出: false 模式是:(.*)apple(.*) 要检查的文本是:Apple matches() 的输出: false 模式是:(.*)apple(.*) 要检查的文本是:apple matches() 的输出:true 模式是:(.*)apple(.*) 要检查的文本是:一天一个苹果让医生远离我。matches() 的输出:true 模式为:(.*)apple(.*) 要检查的文本为:青苹果、黄苹果、红苹果,我喜欢各种苹果。matches() 的输出: true

结论

在本文结束时,我们希望您已经熟悉了Java 中的Java Matcher类。您已经学会了如何在代码中使用它。您还学习了如何调用Matcher类的matches()方法。您可以自行尝试Matcher类的其他方法来更深入地理解它。继续练习以更深入地掌握这个概念。到那时,继续成长,继续发光!
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION