Tìm Hiểu Về Character Class trong Regular Expression
[] - Character Class [] trong regular express được dùng để áp dụng so sánh với lần lượt từng ký tự một trong văn bản mà thoả mãn điều kiện cho trước. Một Số Pattern Sử Dụng Character Class Pattern [abc] sẽ chọn ra các ký tự có giá trị là a, b hoặc c. Pattern [a-z] sẽ chọn ra các ký tự ...
[] - Character Class
[] trong regular express được dùng để áp dụng so sánh với lần lượt từng ký tự một trong văn bản mà thoả mãn điều kiện cho trước.
Một Số Pattern Sử Dụng Character Class
- Pattern [abc] sẽ chọn ra các ký tự có giá trị là a, b hoặc c.
- Pattern [a-z] sẽ chọn ra các ký tự có giá trị từ a tới z.
- Pattern [a-z123] sẽ chọn ra các ký tự có giá trị từ a tới z hoặc 1, 2, 3(từ 1 tới 3).
- Pattern [a-z0-9] sẽ chọn ra các ký tự có giá trị từ a tới z hoặc từ 0 tới 9.
- Pattern [a-z0-9A-Z] sẽ chọn ra các ký tự có giá trị từ a tới z hoặc từ 0 tới 9 hoặc từ A tới Z (chữ in hoa).
Áp Dụng Pattern Sử Dụng Character Class Trong Tìm Kiếm Chuỗi
Áp dụng tìm kiếm trong chuỗi akbc với pattern là [abc] thì kết quả trả về sẽ có 3 ký tự đáp ứng pattern này là a, b và c, chữ cái k không thoả mãn pattern này.
Áp dụng tìm kiếm trong chuỗi a1bc với pattern là [a-z] thì kết quả trả về sẽ có 4 ký tự đáp ứng pattern này là a, b và c, chữ số 1 không thoả mãn pattern này.
Áp dụng tìm kiếm trong chuỗi a1b0c với pattern là [a-z123] thì kết quả trả về sẽ có 4 ký tự đáp ứng pattern này là a, b và c và 1, chữ số 0 không thoải mãn pattern này.
Áp dụng tìm kiếm trong chuỗi aA1b0c với pattern là [a-z0-9] thì kết quả trả về sẽ có 5 ký tự đáp ứng pattern này là a, b và c, 1 và 0, chữ cái A sẽ không thoả mãn pattern này.
[^] - Character Class Phủ Định
[] trong regular express được dùng để tìm kiếm một ký tự trong chuỗi mà không thoả mãn điều kiện cho trước.
Một Số Pattern Sử Dụng Character Class Phủ Định
- Pattern ^[abc] sẽ chọn ra 1 ký tự mà có giá trị không phải là a, b hoặc c.
- Pattern ^[a-z] sẽ chọn ra 1 ký tự có giá trị khác với các ký tự từ a tới z.
- Pattern ^[a-z123] sẽ chọn ra 1 ký tự có giá trị khác với các ký tự a tới z và các ký tự 1, 2, 3(từ 1 tới 3). ...
Áp Dụng Pattern Sử Dụng Character Class Phủ Định Trong Tìm Kiếm Chuỗi
Áp dụng tìm kiếm trong chuỗi akbc với pattern là [^abc] thì kết quả trả về sẽ có 1 ký tự đáp ứng pattern này là chữ cái k, các chữ cái a, b và c không thoả mãn pattern này.
Áp dụng tìm kiếm trong chuỗi a1bc với pattern là [^a-z] thì kết quả trả về sẽ có 1 ký tự đáp ứng pattern này là chữ số 1, các chữ cái a, b và c không thoả mãn pattern này.
Lưu ý: Khi ^ được đặt ở đầu tiên (không nằm trong []) thì lại có ý nghĩa khác đó là dùng để quy định ký tự bắt đầu của dòng là gì.
Ví dụ pattern ^abc sẽ tìm kiếm trong văn bản các chuỗi được bắt đầu với abc ở đầu dòng.
Ở ví dụ trên chúng ta tìm kiếm trong văn bản cho trước các chuỗi match với pattern ^abc. Chuỗi cho trước có 5 dòng:
a3bc a bc abc123 abcabc abcdef
Tuy nhiên chỉ có 3 dòng cuối có chuỗi khớp với pattern ^abc vì chúng được bắt đầu bằng chuỗi liên tiếp 3 ký tự này
Vẫn đoạn văn bản trên tuy nhiên nếu bạn sử dụng kết hợp ^ với character class ví dụ như pattern ^abc[1a] thì lúc này chỉ có 2 dòng có chuỗi match với pattern này đó là các chuỗi abc1 và abca nằm ở các dòng số 3 và số 4.
Và nếu bạn kết hợp thêm với character class phủ định, chẳng hạn với pattern ^abc[1a][^2] thì lúc này sẽ chỉ còn lại một dòng duy nhất có chuỗi match với pattern này đó là chuỗi abcab ở trong dòng thứ 4.