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