Tìm Hiểu Về Character Class trong Regular Expression

Thái Nguyễn

[] - 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, bc, chữ cái k không thoả mãn pattern này.

Á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 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, bc, chữ số 1 không thoả mãn pattern này.

Á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 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, bc và 1, chữ số 0 không thoải mãn pattern này.

Á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 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, bc, 1 và 0, chữ cái A sẽ không thoả mãn pattern này.

Áp Dụng Pattern Sử Dụng Character Class Trong Tìm Kiếm Chuỗi

[^] - 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, bc không thoả mãn pattern này.

Á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 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, bc không thoả mãn pattern này.

Áp Dụng Pattern Sử Dụng Character Class Phủ Định Trong Tìm Kiếm Chuỗi

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.

Áp Dụng Pattern Sử 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 abc1abca nằm ở các dòng số 3 và số 4.

Áp Dụng Pattern Sử Dụng ^ Kết Hợp Với Character Class

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.

Áp Dụng Pattern Sử Dụng ^ Kết Hợp Với Character Class Phủ Định

Thêm Phản Hồi

Bài Viết Liên Quan