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