Bảng Tra Regex
Chọn máy regex
Bắt đầu bằng máy bạn dùng. Tài liệu tham chiếu sẽ ẩn cú pháp không áp dụng cho lựa chọn đó.
Dùng tài liệu tham chiếu tương tác này để so sánh cú pháp biểu thức chính quy phổ biến trước khi dán vào mã. Hãy chọn JavaScript, PCRE2/PHP, Python re, .NET hoặc chế độ xem tất cả máy, rồi chọn chủ đề và tìm các mục đang hiển thị. Tài liệu đánh dấu cú pháp dành riêng cho từng họ máy vì một mã thông báo biên dịch được ở máy này có thể bị từ chối hoặc mang nghĩa khác ở máy khác. Việc tìm kiếm và sao chép diễn ra trong trình duyệt; trang này không chạy mẫu trên văn bản của bạn.
Cách dùng bảng tra regex
-
1
Chọn máy
Bắt đầu với JavaScript, PCRE2/PHP, Python re, .NET hoặc so sánh tất cả. Chế độ xem tập trung bỏ các mục không áp dụng cho máy đã chọn.
-
2
Chọn chủ đề
Mở neo, lớp ký tự, lượng từ, nhóm, lookaround, dạng mẫu phổ biến hoặc cờ và tùy chọn.
-
3
Tìm và sao chép cục bộ
Tìm mã thông báo và mô tả ngay trên trang, rồi chọn mã thông báo để sao chép. Văn bản tìm kiếm không được gửi đến máy chủ hoặc thêm vào URL.
-
4
Xác minh trong runtime thật
Dùng đúng máy, cờ và API trong dự án để biên dịch và kiểm tra biểu thức cuối. Tài liệu này giải thích cú pháp, không xác thực dữ liệu production.
Khả năng tương thích rất quan trọng
Biểu thức chính quy không phải một ngôn ngữ chung duy nhất. Bảng tra này tách các cú pháp trông giống nhau nhưng không chuyển nguyên vẹn giữa các máy.
| Tính năng | JavaScript RegExp | PCRE2 / PHP | Python re |
.NET |
|---|---|---|---|---|
| Đầu tuyệt đối | Không có \A |
\A |
\A |
\A |
| Cuối tuyệt đối | Không có \z |
\z |
\Z |
\z |
Thuộc tính Unicode \p{L} |
Dùng chế độ u hoặc v |
Hỗ trợ | Không có trong re tích hợp |
Hỗ trợ |
| Nhóm bắt có tên | (?<name>...) |
(?<name>...) hoặc (?P<name>...) |
(?P<name>...) |
(?<name>...) |
| Tham chiếu ngược có tên | \k<name> |
\k<name> hoặc (?P=name) |
(?P=name) |
\k<name> |
| Khớp toàn cục | Cờ g cùng API khớp |
API khớp lặp như preg_match_all |
API khớp lặp như finditer |
API khớp lặp như Matches |
\d và \w cần được chú ý đặc biệt. Trong JavaScript, \d vẫn là chữ số ASCII 0-9, còn \w về cơ bản vẫn là ký tự từ ASCII ngay cả khi thêm u. Các máy khác có thể áp dụng quy tắc nhận biết Unicode theo chế độ và cấu hình. Nếu hành vi Unicode quan trọng, hãy viết và kiểm tra đúng thuộc tính hoặc lớp bạn cần.
Neo và ranh giới
| Mã thông báo | Biểu đạt | Ghi chú về khả năng chuyển đổi |
|---|---|---|
^ |
Đầu đầu vào hoặc đầu dòng ở chế độ nhiều dòng | Có trong cả bốn họ máy. |
$ |
Cuối đầu vào hoặc cuối dòng ở chế độ nhiều dòng | Có trong cả bốn họ; chi tiết dòng mới cuối khác nhau. |
\b |
Ranh giới từ | Điều gì là ký tự từ tùy thuộc máy và chế độ. |
\A |
Đầu tuyệt đối của chuỗi | PCRE2, Python và .NET; không có ở JavaScript. |
\z |
Cuối tuyệt đối của chuỗi | PCRE2 và .NET; Python dùng \Z. |
\Z |
Cuối chuỗi trong Python | PCRE2 và .NET cũng có thể khớp trước dòng mới cuối; dùng \z để chỉ cuối tuyệt đối ở đó. |
Nhóm và lookaround
| Mã thông báo | Ý nghĩa | Giới hạn quan trọng |
|---|---|---|
(abc) |
Nhóm bắt | Có trong cả bốn họ máy. |
(?:abc) |
Nhóm không bắt | Có trong cả bốn họ máy. |
(?<name>abc) |
Nhóm có tên | Cú pháp JavaScript, PCRE2 và .NET. |
(?P<name>abc) |
Nhóm có tên | Cú pháp Python; PCRE2 cũng chấp nhận. |
(?=abc) / (?!abc) |
Lookahead dương / âm | Có trong cả bốn họ máy. |
(?<=abc) / (?<!abc) |
Lookbehind dương / âm | Cả bốn họ hỗ trợ, nhưng độ dài cho phép khác nhau. |
Lookbehind là bẫy chuyển đổi thường gặp. Python re cần lookbehind có độ rộng cố định. Hỗ trợ JavaScript tùy runtime bạn triển khai. Hãy kiểm tra mẫu chính xác trong runtime cũ nhất mà bạn hỗ trợ, thay vì chỉ dựa vào một hàng trong bảng tra.
Dạng mẫu, không phải trình xác thực đầy đủ
Các mục mẫu phổ biến cố ý chỉ mô tả dạng. Ví dụ, ^\d{4}-\d{2}-\d{2}$ chấp nhận 2026-99-99, và mẫu có dạng email đơn giản không thể triển khai đầy đủ tiêu chuẩn địa chỉ email. Sau bước kiểm tra định dạng ban đầu, hãy phân tích ngày, URL và mã định danh có cấu trúc bằng thư viện phù hợp.
| Dạng | Mẫu ví dụ | Điều không chứng minh được |
|---|---|---|
| Số thập phân có dấu | ^-?\d+(?:\.\d+)?$ |
Dấu thập phân địa phương, phân nhóm, phạm vi số hoặc độ chính xác. |
| Văn bản có dạng email | ^[\w.+-]+@[\w-]+\.[\w.-]+$ |
Địa chỉ email gửi được hoặc hoàn toàn đúng chuẩn. |
| Văn bản có dạng URL HTTP(S) | ^https?://\S+$ |
URL an toàn, phân tích được hoặc truy cập được. |
| Dạng ngày ISO | ^\d{4}-\d{2}-\d{2}$ |
Ngày thật trên lịch. |
| Ký tự slug ASCII | ^[A-Za-z0-9_-]+$ |
Quy tắc về chữ hoa, dấu phân cách hoặc từ dành riêng của ứng dụng. |
Cờ và tùy chọn
Đừng sao chép cờ mà chưa kiểm tra API chủ. JavaScript viết /pattern/g, Python truyền re.I hoặc re.X, .NET có thể dùng RegexOptions, còn PCRE2/PHP thường dùng dấu phân cách và bộ sửa đổi ở cuối. g là cờ khớp toàn cục của JavaScript, không phải bộ sửa đổi PCRE2; khớp PCRE2 lặp thường do API PHP điều khiển. Chế độ mở rộng x có trong PCRE2, Python và .NET nhưng không phải cờ JavaScript.
Câu hỏi thường gặp
Không. Đây là tài liệu cú pháp với điều khiển tìm kiếm và sao chép cục bộ trong trình duyệt. Hãy dùng trình kiểm tra regex và runtime của ứng dụng để biên dịch mẫu cũng như kiểm tra dữ liệu đầu vào đại diện.
Một số mã thông báo quen thuộc không chuyển đổi được. Python re tích hợp dùng (?P<name>…) cho nhóm có tên, JavaScript dùng (?<name>…), và JavaScript không hỗ trợ neo tuyệt đối \A hoặc \z.
Không. Trong JavaScript, \d là chữ số ASCII và \w về cơ bản là ký tự từ ASCII kể cả với cờ u. Các máy khác có chế độ và tùy chọn Unicode khác, vì vậy hãy kiểm tra hành vi dữ liệu của bạn cần.
Chỉ nên coi chúng là kiểm tra dạng nhanh. Chúng không chứng minh email gửi được, URL an toàn hoặc truy cập được, hay ngày tồn tại trong lịch. Hãy dùng trình phân tích hoặc trình xác thực chuyên dụng cho quy tắc production.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bộ chuyển đổi Base64 sang Hex
Chuyển chuỗi Base64 chuẩn thành các byte nền tảng được viết dưới dạng hexadecimal liên tục in hoa. Giải mã nghiêm ngặt, lý tưởng cho token, khóa và chữ ký JWT.
Trình tạo bảng màu ngẫu nhiên
Tạo bảng màu ngẫu nhiên từ 2 đến 15 mẫu màu, chọn phong cách rực rỡ, pastel, dịu hoặc tối, rồi sao chép mã HEX hoặc biến CSS.
Trình tạo bảng màu
Tạo bảng màu đơn sắc, tương đồng, bổ túc, bộ ba hoặc bộ bốn từ màu HEX gốc và xuất các biến CSS sẵn sàng sao chép.
Bộ chọn màu HEX
Chọn hoặc nhập màu HEX để xem RGB, HSL, CMYK ước tính, độ chói tương đối và tương phản với trắng và đen.