Java 中的 Matcher 執行緒是否安全?


正則表示式是一種帶有特定模式的特殊字元序列,可幫助你使用專門的語法匹配或查詢其他字串或字串集合。它們可用於查詢、編輯或處理文字和資料。Java 提供 java.util.regex 包,可使用正則表示式進行模式匹配。

Matcher 類

Matcher 物件是解釋模式並針對輸入字串執行匹配操作的引擎。與 Pattern 類一樣,Matcher 不定義任何公共建構函式。你可以透過呼叫 Pattern 物件上的 matcher() 方法獲取 Matcher 物件。

此類的例項不適用於多執行緒併發。

示例

以下 Java 程式從使用者處接受 5 個字串,並列印以數字開頭的字串。

即時演示

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartingwithDigit {
   public static void main( String args[] ) {
      String regex = "^[0-9].*$";
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter 5 input strings: ");
      String input[] = new String[5];
      for (int i=0; i<5; i++) {
         input[i] = sc.nextLine();
      }
      //Creating a Pattern object
      Pattern p = Pattern.compile(regex);
      System.out.println("Strings starting with digits: ");
      for(int i=0; i<5;i++) {
         //Creating a Matcher object
         Matcher m = p.matcher(input[i]);  
         if(m.matches()) {
            System.out.println(m.group());
         }
      }
   }
}

輸出

Enter 5 input strings:
sample string 1
sample string 2
11 sample string 3
22 sample string 4
43534 56353 636
Strings starting with digits:
11 sample string 3
22 sample string 4
43534 56353 636

更新於: 2021 年 2 月 5 日

830 次瀏覽

開啟你的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.