解釋 Java 正則表示式中的字元類


Java 正則表示式,通常稱為 rege。它用於搜尋和處理文字。它們被用於許多應用程式中。網路抓取、電子郵件篩選和密碼驗證就是其中的一些。一個可以用於匹配字串中特定字元序列的模式也稱為正則表示式。為了構建模式,使用了一種特殊的語法,其中包含量詞、字元類、萬用字元和普通字元。

字元類是可以由正則表示式匹配的字元。它們使用方括號 [] 定義。例如,字元類 [abc] 匹配字元 a、b 和 c。也可以使用連字元指定字元範圍。字元類 [a-z] 匹配所有小寫字母。

正則表示式中的字元類

字元類

描述

[abc]

它匹配字元“a”、“b”或“c”中的一個字元。

[^\^abc]

它匹配一個不在“a”、“b”或“c”集合中的字元。

[a-c]

它與從 'a' 到 'c' 的多個字元相容。

[a-c[f-h]]

它與'a-c'或'f-h'集合中的任何字元相容。

[a-c&&[b-c]]

它與'a-c'和'b-c'集合中的任何字元相容。

[a-c&&[\^b-c]]

它匹配'a-c'集合中的一個字元,但不在'b-c'集合中。

示例 1

此 Java 程式碼說明如何使用正則表示式匹配模式。該程式碼載入必要的正則表示式庫並建立一個名為 RegexExample 的類。在 main 函式中,Pattern.matches 方法用於檢查字串是否與模式“[abc]”匹配。它表示它們必須包含'a'、'b'或'c'。

演算法

  • 步驟 1:使用 import java.util.regex.*; 匯入正則表示式庫。

  • 步驟 2:定義一個名為 RegexExample 的類。

  • 步驟 3:啟動 main 方法。

  • 步驟 4:使用 Pattern.matches 檢查字串是否與模式匹配。

  • 步驟 5:測試字串“abc”是否與模式“[abc]”匹配。結果:false。

  • 步驟 6:測試字串“a”是否與模式“[abc]”匹配。結果:true。

  • 步驟 7:測試字串“abcd”是否與模式“[abc]”匹配。結果:false。

  • 步驟 8:列印結果。

示例

import java.util.regex.*;

public class RegexExample {
    public static void main(String args[]) {
        System.out.println(Pattern.matches("[abc]", "abc"));
        System.out.println(Pattern.matches("[abc]", "a"));
        System.out.println(Pattern.matches("[abc]", "abcd"));
    }
}

輸出

false
true
false

示例 2

該程式碼使用 Java 正則表示式庫來檢查字串是否與某個模式匹配。第一個模式匹配從'a'到'f'的任何小寫字母。第二個模式匹配

  • 從'a'到'z'的字母

  • 從'A'到'Z'的大寫字母

  • 或從'0'到'9'的數字。

第三個將與不是'r'、's'或't'的小寫/大寫字母相容。如果字串與模式匹配,則輸出為 true,否則為 false。

演算法

  • 步驟 1:使用 Pattern.matches 檢查字串是否與給定模式匹配。

  • 步驟 2:檢查字串“d”是否與模式“[a-f]”匹配。結果:true。

  • 步驟 3:列印第一次匹配的結果。輸出:true。

  • 步驟 4:重新使用 Pattern.matches 檢查字串“E”是否與模式“[a-zA-G0-9]”匹配。結果:true。

  • 步驟 5:列印第二次匹配的結果。輸出:true。

  • 步驟 6:重新使用 Pattern.matches 檢查字串“r”是否與模式“[a-zA-Z&&[^rst]]”匹配。結果:false。

  • 步驟 7:列印第三次匹配的結果。輸出:false。

  • 步驟 8:結束 main 方法。

示例

import java.util.regex. * ;
public class RegexInstance {
  public static void main(String[] args) {
    boolean isMatch = Pattern.matches("[a-f]", "d"); 
    System.out.println(isMatch);
    isMatch = Pattern.matches("[a-zA-G0-9]", "E"); 
    System.out.println(isMatch);
    isMatch = Pattern.matches("[a-zA-Z&&[^rst]]", "r"); 
    System.out.println(isMatch);

  }

}

輸出

true
true
false

示例 3

在提供的 Java 程式碼中,正則表示式用於模式匹配。程式檢查各種字串是否與特定模式匹配,例如匹配任何字元後跟'g'或'f'。輸出確認“fg”和“mnv”的匹配,而其他測試用例與模式不匹配。

演算法

  • 步驟 1:啟動 main 方法。

  • 步驟 2:使用 Pattern.matches 檢查字串是否與指定的模式匹配。

  • 步驟 3:檢查字串“fg”是否與模式“.g”匹配。點 . 匹配任何單個字元,因此“.g”匹配以“g”結尾的任何兩個字元的字串。結果:true。

  • 步驟 4:列印第一次匹配的結果。輸出:true。

  • 步驟 5:重新使用 Pattern.matches 檢查字串“de”是否與模式“.f”匹配。這裡,“.f”匹配以“f”結尾的任何兩個字元的字串。結果:false。

  • 步驟 6:列印第二次匹配的結果。輸出:false。

  • 步驟 7:重新使用 Pattern.matches 檢查字串“xyz”是否與模式“.q”匹配。這裡,“.q”匹配以“q”結尾的任何兩個字元的字串。結果:false。

  • 步驟 8:列印第三次匹配的結果。輸出:false。

  • 步驟 9:重新使用 Pattern.matches 檢查字串“gce”是否與模式“.c”匹配。這裡,“.c”匹配以“c”結尾的任何兩個字元的字串。結果:false。

  • 步驟 10:列印第四次匹配的結果。輸出:false。

  • 步驟 11:重新使用 Pattern.matches 檢查字串“mnv”是否與模式“..v”匹配。這裡,“..v”匹配以“v”結尾的任何三個字元的字串。結果:true。

  • 步驟 12:列印第五次匹配的結果。輸出:true。

  • 步驟 13:結束 main 方法。

示例

import java.util.regex.Pattern;
 
public class RegexInstance2 {
	public static void main(String args[]){
		System.out.println(Pattern.matches(".g", "fg"));  
		System.out.println(Pattern.matches(".f", "de"));
		System.out.println(Pattern.matches(".q", "xyz"));
		System.out.println(Pattern.matches(".c", "gce"));
		System.out.println(Pattern.matches("..v", "mnv"));
	}
}

輸出

true
false
false
false
true

結論

簡而言之,Java 正則表示式中的字元類在文字處理操作中發揮著重要作用。它們用於指定正則表示式模式可以匹配的字元集。這些類用方括號 [] 表示,它們允許您匹配特定字元、字元範圍,甚至字元組合。字元類允許您設計靈活且強大的模式,這些模式有助於執行諸如密碼驗證、電子郵件篩選和網站抓取等操作。這些示例展示了 Java 程式碼如何使用字元類來識別字符串中的模式並根據匹配結果做出智慧決策。

更新於: 2023年8月29日

294 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.