确定匹配 Java 正则表达式的位置和长度

javaobject oriented programmingprogramming更新于 2025/2/13 13:32:17

java.util.regex.Matcher 类的 start() 方法返回匹配的起始位置(如果发生匹配)。

类似地,Matcher 类的 end() 方法返回匹配的结束位置。

因此,start() 方法的返回值将是匹配的起始位置,而 end() 和 start() 方法的返回值之间的差将是匹配的长度。

示例

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherExample {
   public static void main(String[] args) {
      int start = 0, len = -1;
      Scanner sc = new Scanner(System.in);
      System.out.println("输入输入文本: ");
      String input = sc.nextLine();
      String regex = "\d+";
      //创建一个 Pattern 对象
      Pattern pattern = Pattern.compile(regex);
      //匹配字符串中的编译模式
      Matcher matcher = pattern.matcher(input);
      while (matcher.find()) {
         start = matcher.start();
         len = matcher.end()-start;
      }
      System.out.println("匹配的位置:"+start);
      System.out.println("匹配的长度:"+len);
   }
}

输出

输入文本:
样本数据,数字 12345
匹配位置:24
匹配长度:5

相关文章


有用资源