Bảng Tra Regex

Bước 1 / 3 33%

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. 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. 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. 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. 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\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