Hướng dẫn java html regex
Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người. Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất. Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi. Show 1- Regular expressionMột biểu thức chính quy (Regular expressions) định nghĩa một khuôn mẫu (pattern) tìm kiếm chuỗi. Nó có thể được sử dụng tìm kiếm, sửa đổi, và thao tác trên văn bản. Khuôn mẫu được định nghĩa bởi biểu thức chính quy có thể khớp một hoặc một vài lần, hoặc không khớp với một văn bản cho trước. Viết tắt của biểu thức chính quy là regex Biểu thức chính quy (Regular expression) được hỗ trợ bởi hầu hết các ngôn ngữ lập trình, ví dụ, Java, C#, C/C++, v..v Thật không may mỗi ngôn ngữ hỗ trợ biểu thức thông thường hơi khác nhau.
2- Quy tắc viết biểu thức chính quy
3- Các ký tự đặc biệt trong Java Regex (Special characters)Một số ký tự đặc biệt trong Java Regex: Những ký tự liệt kê ở trên là các ký tự đặc biệt. Trong Java Regex bạn muốn nó hiểu các ký tự đó theo cách thông thường bạn cần thêm dấu \ ở phía trước. Chẳng hạn ký tự chấm . java regex đang hiểu là một ký tự bất kỳ, nếu bạn muốn nó hiểu là một ký tự chấm thông thường, cần phải có dấu \ phía trước.
4- Sử dụng String.matches(String)
Sử dụng method String.matches(String regex) cho phép bạn kiểm tra toàn bộ String có khớp với một regex hay không. Đây là một cách thông dụng nhất. Hãy xem các ví dụ: StringMatches.java
Kết quả chạy ví dụ:
SplitWithRegex.java
Kết quả chạy ví dụ:
EitherOrCheck.java
Kết quả chạy ví dụ:
5- Sử dụng Pattern và Matcher1. Pattern là một đối tượng mẫu, một phiên bản đã được biên dịch của một biểu thức chính quy. Nó không có cấu tử (constructor) public, và chúng ta sẽ sử dụng method tĩnh compile(String) để tạo đối tượng, với tham số là biểu thức chính quy. 2. Matcher là một phương tiện để so khớp chuỗi dữ liệu đầu vào với đối tượng Pattern đã được tạo ra ở trên. Class này không có cấu tử public, và chúng ta lấy đối tượng này thông qua method matcher(String) của đối tượng Pattern. Với tham số đầu vào String là văn bản cần kiểm tra. 3. PatternSyntaxException sẽ bị ném ra nếu biểu thức chính quy có ngữ pháp không chính xác.
Đây là một ví dụ sử dụng Matcher và method find() để tìm kiếm các chuỗi con khớp với một biểu thức chính quy. MatcherFind.java
Kết quả chạy ví dụ:
Method Matcher.lookingAt() MatcherLookingAt.java
6- Nhóm (Group)Một biểu thức chính quy bạn có thể tách ra thành các nhóm (group):
Các group có thể lồng nhau, và như vậy cần một quy tắc đánh chỉ số các group. Toàn bộ pattern được định nghĩa là group số 0. Còn lại được mô tả giống hình minh họa dưới đây:
Từ Java 7, bạn có thể xác định một group có tên (? Nhóm bắt theo tên cũng có thể được truy cập thông qua Matcher.group(int group) với cách đánh chỉ số tương tự. Nội bộ, Java chỉ lập bản đồ (ánh xạ) từ tên đến chỉ số nhóm. Do đó, bạn không thể sử dụng cùng tên để bắt 2 nhóm khác nhau. - Hãy xem một ví dụ sử dụng đánh tên cho nhóm (group) (Java >=7) NamedGroup.java
Kết quả chạy ví dụ:
Để dễ hiểu bạn có thể xem hình minh họa dưới đây: 7- Sử dụng Pattern, Matcher, Group và *?Trong một số tình huống *? rất quan trọng, hãy xem một ví dụ sau:
*? sẽ tìm ra một phù hợp nhỏ nhất. Chúng ta xem ví dụ sau: NamedGroup2.java
Kết quả chạy ví dụ: |