Computer >> Máy Tính >  >> Lập trình >> Java

Xác định vị trí và độ dài của khớp Java regex

Phương thức start () của lớp java.util.regex.Matcher trả về vị trí bắt đầu của trận đấu (nếu một trận đấu xảy ra).

Tương tự, phương thức end () của lớp Matcher trả về vị trí kết thúc của trận đấu.

Do đó, giá trị trả về của phương thức start () sẽ là vị trí bắt đầu của đối sánh và sự khác biệt giữa các giá trị trả về của phương thức end () và start () sẽ là độ dài của đối sánh.

Ví dụ

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("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\\d+";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      while (matcher.find()) {
         start = matcher.start();
         len = matcher.end()-start;
      }
      System.out.println("Position of the match : "+start);
      System.out.println("Length of the match : "+len);
   }
}

Đầu ra

Enter input text:
sample data with digits 12345
Position of the match : 24
Length of the match : 5