Regex Character Class
Cú pháp để chỉ định tập ký tự như [a-z], \d, \w. Xác định phạm vi ký tự để khớp.
Lớp ký tự regex là cú pháp để chỉ định tập ký tự có thể khớp tại một vị trí trong văn bản. Dạng cơ bản sử dụng dấu ngoặc vuông: [abc] khớp "a", "b" hoặc "c". Phạm vi có thể được chỉ định bằng dấu gạch ngang: [a-z] khớp bất kỳ chữ cái thường nào, [0-9] khớp bất kỳ chữ số nào. Nhiều phạm vi có thể kết hợp: [a-zA-Z0-9] khớp bất kỳ ký tự chữ số nào.
Lớp ký tự phủ định sử dụng dấu mũ bên trong ngoặc vuông: [^abc] khớp bất kỳ ký tự nào ngoại trừ "a", "b" hoặc "c". Điều này hữu ích cho xác thực đầu vào - ví dụ, [^<>&] khớp các ký tự an toàn cho nội dung HTML. Lưu ý rằng ^ bên ngoài ngoặc vuông có nghĩa khác (neo đầu dòng).
Lớp thuộc tính Unicode (\p{...}) cho phép khớp ký tự dựa trên thuộc tính Unicode. \p{Han} khớp ký tự Hán (kanji), \p{Hiragana} khớp hiragana, \p{L} khớp bất kỳ chữ cái Unicode nào. Điều này đặc biệt hữu ích cho xử lý văn bản đa ngôn ngữ. JavaScript yêu cầu cờ u hoặc v cho thuộc tính Unicode: /\p{Han}/u.
Một quan niệm sai lầm phổ biến là [a-z] luôn chỉ khớp chữ cái Latin. Trong một số engine regex và locale, phạm vi có thể bao gồm các ký tự có dấu. Ngoài ra, \d trong một số triển khai (như Python 3 và Java) khớp chữ số Unicode (chữ số Ả Rập, chữ số Devanagari, v.v.), không chỉ [0-9]. Khi cần khớp chính xác, sử dụng phạm vi rõ ràng thay vì lớp định nghĩa sẵn.
Từ góc độ đếm ký tự, lớp ký tự cho phép đếm các loại ký tự cụ thể trong văn bản. Ví dụ, sử dụng /[\p{Han}]/gu để đếm ký tự kanji, hoặc /\d/g để đếm chữ số. Điều này cho phép phân tích thành phần ký tự chi tiết ngoài tổng số ký tự đơn giản.