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 次浏览

开启你的 职业生涯

完成课程后获得认证

开始
广告