CodeGym /Java Blog /Toto sisi /Java 正規表示式 - 匹配器
John Squirrels
等級 41
San Francisco

Java 正規表示式 - 匹配器

在 Toto sisi 群組發布

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