Java 中的正则表达式是什么?
正则表达式 或正则表达式是形成模式的字符序列。当您搜索任何数据时,您可以使用此专用模式来查找匹配的字符串。它可以是简单的单个字符,也可以是更复杂的模式。在 Java 中,您有一个 java regex 包,其中包含提供使用正则表达式进行模式搜索和操作的功能的类。该包通过以下方式导入到您的代码中。
import java.util.regex.*;
Java 正则表达式 - 匹配器
import java.util.regex.Matcher;
java regex 包具有三个类:
-
模式类:定义需要搜索的模式。
-
Matcher类:匹配文本中的模式并找到它。
-
PatternSyntaxException类:指示正则表达式中的任何语法错误。
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
GO TO FULL VERSION