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

Việc nắm bắt các nhóm trong Java reg ex có nghĩa là gì?

Biểu thức chính quy là một chuỗi ký tự đặc biệt giúp bạn so khớp hoặc tìm các chuỗi hoặc tập hợp chuỗi khác, sử dụng cú pháp chuyên biệt được tổ chức trong một mẫu.

Các nhóm nắm bắt trong biểu thức chính quy được sử dụng để coi nhiều ký tự như một đơn vị duy nhất mà nó được biểu thị bằng “()”. tức là nếu bạn đặt nhiều mẫu con trong một parathesis chúng được coi là một nhóm.

Ví dụ:mẫu [0-9] khớp với các chữ số từ 0 đến 9 và mẫu {5} khớp với bất kỳ ký tự nào. Nếu bạn nhóm hai nhóm này thành ([0-9] {5}) , nó khớp với một số có 5 chữ số.

Ví dụ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class COMMENTES_Example {
   public static void main(String[] args) {  
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your name: ");
      String name = sc.nextLine();
      System.out.println("Enter your Date of birth: ");
      String dob = sc.nextLine();  
      //Regular expression to accept date in MM-DD-YYY format
      String regex = "^(1[0-2]|0[1-9])/   # For Month\n"
       + "(3[01]|[12][0-9]|0[1-9])/ # For Date\n"
       + "[0-9]{4}$                  # For Year";
      //Creating a Pattern object
      Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(dob);
      boolean result = matcher.matches();
      if(result) {
         System.out.println("Given date of birth is valid");
      }else {
         System.out.println("Given date of birth is not valid");
      }  
   }
}

Đầu ra

Enter your name:
Krishna
Enter your Date of birth:
09/26/1989
Given date of birth is valid

Ví dụ

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupTest {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*)";
      String input = "This is a sample Text, 1234, with numbers in between.";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      if(matcher.find()) {
         System.out.println("match: "+matcher.group(0));  
         System.out.println("First group match: "+matcher.group(1));  
         System.out.println("Second group match: "+matcher.group(2));  
         System.out.println("Third group match: "+matcher.group(3));
      }
   }
}

Đầu ra

match: This is a sample Text, 1234, with numbers in between.
First group match: This is a sample Text, 123
Second group match: 4
Third group match: , with numbers in between.