Bài 2: Biểu diễn miền giá trị mẫu trong biểu thức chính quy

Ở bài trước chúng ta đã hiểu qua biểu thức chính quy là gì và thông qua một số ví dụ đơn giản cũng đã hiểu sơ qua về ý nghĩa hoạt động của nó.

Tuy nhiên trên thực tế tập dữ liệu mẫu nó vô cùng đa dạng và phức tạp.

Ví dụ yêu cầu của chúng ta cần một mẫu kiểm tra một trường nhập vào là các chữ số nằm trong tập hợp {1,2,..9} chúng ta không thể sử dụng cách thông thường là liệu kê tất cả ra và so sánh được.

Hôm nay thông qua một số cú pháp trong biểu thức chính quy thì công việc chúng ta sẽ nhẹ nhàng hơn rất nhiều

Dấu ngoặc vuông [...] trong biểu thức chính quy

Khi sử dụng dấu ngoặc vuông này biểu thức chính quy biểu thị chuỗi mẫu cho phép chuổi so sánh chưa 1 ký tự bất trì trong các ký tự nằm ở biên trong.

Ví dụ sau biểu diễn chuỗi mẫu chứa các ký tự abc

/[abc]/

Khi đấy các chuỗi : a, ad, abc có định dạng trùng với chuỗi mẫu vì nó tồn tại ít nhất 1 ký tự có chứa 1 trong 3 ký tự trong tập hợp các ký tự {a,b,c}

Rõ ràng hơn, với chuổi mẫu như trên biểu diễn cho một ký tự bất kỳ của chuổi có nằm trong tập hợp các ký tự trong nằm trong dấu ngoặc []

Tiếp theo, một chuỗi có ký tự chứa một trong các chữ số 1,2,3 được biểu diễn dưới dạng biểu thức chính quy như sau

/[123]/

Với lập luận như trên ta có các chuổi sau đúng theo chuỗi mẫu mà chúng ta biểu diễn: 1abc, 345cd

Và các chuỗi sau không đúng định dạng: abc456, cd357

Rồi, chắc đến đây các bạn cũng đã hiểu qua phần nào về cách làm việc của biểu thức chính quy rồi. Chúng ta đi tiếp qua luật tiếp theo

Dấu gạch ngang (-) trong ngoặc vuông ([...]) ở biểu thức chính quy

Ở phần trước khi chúng biểu diễn tập hợp các ký tự liên tục hay không chúng ta cũng liên kê ra, tuy nhiên làm như thế nó rất mất thời gian.

Với dấu gạch ngang sẽ cho phép chúng ta tiết kiệm thời gian khi nó tự động tạo cho chúng ta một dãy các ký tự liên tục (Gồm các chữ cái và chữ số)

Ví dụ sau biểu thị chuỗi mẫu yêu cầu chứa một trong các ký tự từ 0-9

/[0-9]/

Cách biểu diễn như trên nó tương đương với

/[0123456789]/

Nó đã tiết kiệm thời gian của chúng ta khi tự động tạo ra một dãy chử số liên tục khi chúng ta chỉ cần khai báo ký tự bắt đầu và ký tự kết thúc

Biểu diễn các chữ cái từ A đến Z ta viết như sau:

/[A-Z]/

Biễu diễn các chử cái từ a đến z nhỏ như sau:

/[a-z]/

Nâng cao hơn, chúng ta biểu diễn tập hợp ký tự mẫu bao gồm

- Các ký tự chữ số từ 0-9

- Các ký tự chữ cái thường a - z

- Các ký tự chữ cái hoa A - Z

Ta biểu diễn thành chuỗi sau

/[A-Za-z0-9]/

Đấy, khá dễ hiểu đúng không nào? Tuy nhiên cũng có một số trường hợp tập ký tự mẫu của mình muốn loại bỏ đi một số ký tự hoặc một dãy ký tự nào đó chúng ta làm thế nào? Các bạn tiếp tục theo dõi phần sau.

Dấu mũ (^) trong biểu thức chính quy

Dấu mũ (^) để loại bỏ đi một số hoặc một dãy ký tự của tập hợp ký tự mẫu khi nằm trong ngoặc đơn

Ví dụ tập ký tự mẫu của chung ta là bất kỳ loại trừ các ký tự {a,b}

/[^ab]/

Hoặc tập ký tự mẫu hoại trừ các số 0 đến 3

/[^0-3]/

 

Đấy là cách chúng ta loại trừ đi tập hợp các ký tự hoặc dãy ký tự, chúng ta chỉ cần cho dấu ^ vào trước tập hoặc dãy ký tự muốn loại bỏ

Kết luận

Ở bài này chúng ta vừa đi qua các tạo tập hợp, dãy và loại bỏ trong ký tự mẫu. Nó cũng không có gì khó khăn lắm đúng không nào?

Phần sau chúng ta bước qua phần hấp dẫn hơn chính là biễu diễn tính lặp trong biểu thức chính quy

 

Url Link

http://hocweb123.com/bai-2-bieu-dien-mien-gia-tri-mau-trong-bieu-thuc-chinh-quy.html

Bài 2: Biểu diễn miền giá trị mẫu trong biểu thức chính quy