Biểu thức chính quy (Regular expression) là gì? Regular expression trong java được sử dụng như thế nào?
1. Định nghĩa
Biểu thức chính quy (regular expression hay còn gọi là regex) là 1 chuỗi mẫu được sử dụng để quy định dạng thức của 1 chuỗi, nếu 1 chuỗi nào đó phù hợp với mẫu dạng thức thì chuỗi đó được gọi là so khớp.
VD: Ta có dạng thức của chuỗi là : [0-9]{6,12} . Nếu chuỗi bạn nhập vào là các số và độ dài từ 6 đến 12 số thì được cho là khớp, còn ngược lại thì được cho là không khớp.
2. Regular expression trong Java
VD: Trong class Validate ta khởi tạo 1 chuỗi mẫu (biểu thức chính quy): ” REGEX_EMAIL ” để định dạng cho email và 1 method validateEmail cho phép truyền vào 1 chuỗi và kiểm tra chuỗi đó có đúng định dạng email không.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Validate { Pattern pattern; Matcher matcher; public static final String REGEX_EMAIL = "[A-Za-z0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z0-9]+)"; public boolean validateEmail(String string){ pattern = Pattern.compile(REGEX_EMAIL); matcher = pattern.matcher(string); return matcher.matches(); } }
pattern = Pattern.compile(REGEX_EMAIL): Sử dụng để xác định 1 khuôn mẫu cho các biểu thức chính quy. Nó sử dụng method static compile() để tạo object.
matcher = pattern.matcher(string): Thực hiện so khớp trên 1 chuỗi ký tự. Sử dụng method matcher() để tạo,
matcher.matches(): Sẽ so sánh chuỗi truyền vào với biểu thức chính quy. Nếu đúng định dạng của biểu thức chính quy thì sẽ trả về true và ngược lại nếu không đúng định dạng sẽ trả về false.
3. Quy tắc viết biểu thức chính quy
Ký tự:
^ : Bắt đầu 1 biểu thức chính quy
$ : Kết thúc 1 biểu thức chính quy
+ : Lặp lại 1 hoặc nhiều lần
* : Lặp lại 0 hoặc nhiều lần
? : Lặp lại 0 hoặc 1 lần
– : Khoảng liên tiếp
. : 1 ký tự bất kỳ
{n} : Lặp lại n lần
{ n , m } : Lặp lại ít nhất là n lần và nhiều nhất là m lần
{n , } : Lặp lại ít nhất n lần
{ , m} : Lặp lại nhiều nhất m lần
[ ] : Hoặc
( ) : Và
\ : ký tự đặc biệt phía sau nó
\d : Giống với [ 0 – 9 ] : cho phép nhập 1 số
\D : Giống với [ ^ 0 -9] : không cho phép nhập số
\w : Giống [ 0-9a-zA-Z ] : Cho phép nhập số , chữ hoa, chữ thường
\W : Giống [ ^0-9a-zA-Z ] : Không cho phép nhập số , chữ hoa, chữ thường
\s : Cho nhập khoảng trắng
Author: Đào Văn Phi
Đăng ký nhận bộ tài liệu kỹ năng dành cho lập trình viên (video hướng dẫn + slide) tại đây
Tìm hiểu thêm về mô hình Coding Bootcamp tại đây
0 Lời bình