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ự định nghĩa sẵn cung cấp phím tắt cho các mẫu phổ biến. \d tương đương [0-9] (chữ số), \w tương đương [a-zA-Z0-9_] (ký tự từ), \s khớp khoảng trắng (space, tab, newline). Phiên bản viết hoa phủ định: \D khớp không phải chữ số, \W khớp không phải ký tự từ, \S khớp không phải khoảng trắng. Bạn có thể tham khảo sách hướng dẫn mẫu regex về cú pháp lớp ký tự.

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. Bạn có thể tham khảo sách tự động hóa văn bản để tìm hiểu thêm.

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.