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

Phương thức cờ mẫu () trong Java với các ví dụ

Lớp mẫu của java.regex gói là một đại diện đã biên dịch của một biểu thức chính quy.

Biên dịch () phương thức của lớp này chấp nhận một giá trị chuỗi đại diện cho một biểu thức chính quy và trả về một Mẫu đối tượng, sau đây là chữ ký của phương thức này.

static Pattern compile(String regex)

Một biến thể khác của phương thức này chấp nhận một giá trị số nguyên đại diện cho các cờ, sau đây là chữ ký của phương thức biên dịch với hai tham số.

static Pattern compile(String regex, int flags)

Mẫu lớp cung cấp các trường khác nhau, mỗi trường đại diện cho một cờ

S.Không Trường và Mô tả
1 CANON_EQ
Chỉ đối sánh hai ký tự nếu chúng bằng nhau về mặt quy tắc.
2 CASE_INSENSITIVE
Đối sánh các ký tự không phân biệt chữ hoa và chữ thường.
3 NHẬN XÉT
Cho phép khoảng trắng và nhận xét theo mẫu.
4 DOTALL
Bật chế độ dotall. Nơi dấu “.” Ký tự meta khớp với tất cả các ký tự bao gồm các ký tự kết thúc dòng.
5 LIÊN BANG
Cho phép phân tích cú pháp theo nghĩa đen của mẫu. tức là tất cả các siêu ký tự và chuỗi thoát trong chuỗi đầu vào được coi là ký tự chữ.
6 MULTILINE
Bật chế độ nhiều dòng, tức là toàn bộ chuỗi đầu vào được coi là một dòng duy nhất.
7 UNICODE_CASE
Cho phép gập chữ hoa chữ thường Unicode, tức là khi được sử dụng cùng với CASE_INSENSITIVE. nếu bạn tìm kiếm các ký tự Unicode bằng cách sử dụng biểu thức chính quy Các ký tự Unicode của cả hai trường hợp sẽ được khớp với nhau.
8 UNICODE_CHARACTER_CLASS
Bật phiên bản Unicode của các lớp ký tự được xác định trước và các lớp ký tự POSIX.
9 UNIX_LINES
Cờ này bật chế độ dòng Unix.

cờ () phương thức của lớp này trả về cờ được sử dụng trong mẫu hiện tại.

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");
      }
      System.out.println("Flag used: "+ pattern.flags());
   }
}

Đầu ra

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