Trình Soạn Thảo

Đang chờ đầu vào hoặc thực thi regex…

Hành Động

?
?
?

Giới thiệu Công cụ Kiểm tra Regex Trực tuyến

Dán văn bản, viết mẫu regex, chuyển đổi cờ và ngay lập tức xem những gì khớp. Công cụ kiểm tra regex này sử dụng cùng công cụ RegExp như các môi trường chạy JavaScript hiện đại, vì vậy những gì bạn thấy ở đây là những gì bạn sẽ nhận được trong mã frontend, script Node.js hoặc xác thực phía máy chủ. Các nhóm chụp có tên, lookaround và chế độ Unicode được hỗ trợ khi môi trường chạy của bạn hỗ trợ chúng.

Tại Sao Sử Dụng Công Cụ Kiểm Tra Regex Này

  • Khớp thời gian thực với chế độ "trực tiếp" tùy chọn để chạy lại khi bạn gõ
  • Danh sách kết quả có cấu trúc với chỉ số bắt đầu, chỉ số kết thúc, giá trị và nhóm bắt gặp có tên
  • Hỗ trợ đầy đủ cú pháp RegExp JavaScript/ECMAScript (cùng engine với môi trường JS của bạn)
  • Điều khiển cờ: g, i, m, s, u, y – kết hợp và thử nghiệm an toàn
  • Thông tin hiệu suất cơ bản với thời gian thực thi mỗi lần tính bằng mili giây
  • Đầu ra tóm tắt chỉ văn bản để sao chép/dán nhanh vào ticket, tài liệu hoặc tin nhắn commit
  • Tuyệt vời cho việc học: thử nghiệm mẫu mà không cần chạy toàn bộ dự án hoặc bộ kiểm thử
  • Lý tưởng cho công việc hàng ngày: phân tích nhật ký, xác thực, trích xuất URL/ID, làm sạch dữ liệu nhanh
  • Danh sách kết quả được giới hạn nhẹ để tránh treo giao diện khi khớp văn bản lớn

🔧 Cách Sử Dụng Công Cụ Kiểm Tra Regex for regex-tester

1

1. Dán hoặc Gõ Văn Bản Kiểm Tra

Thêm văn bản bạn muốn tìm kiếm: nhật ký, đoạn mã, mảnh CSV, HTML, JSON, bất cứ thứ gì là văn bản thuần.

2

2. Viết Mẫu Regex Của Bạn

Nhập biểu thức chính quy **không có dấu gạch chéo bao quanh**. Ví dụ: <code>\b\w+@\w+\.\w+</code> cho mẫu giống email cơ bản, hoặc <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> với nhóm có tên.

3

3. Thiết Lập Cờ (g, i, m, s, u, y)

Bật/tắt cờ như <code>g</code> (toàn cục), <code>i</code> (không phân biệt hoa thường) hoặc <code>m</code> (đa dòng). Bên dưới, công cụ xây dựng <code>new RegExp(pattern, flags)</code> giống hệt như JavaScript.

4

4. Kiểm Tra Kết Quả & Nhóm

Xem lại từng kết quả với chỉ số, chỉ số kết thúc tùy chọn và nhóm bắt gặp. Nhóm có tên xuất hiện dưới dạng bản đồ giống JSON để bạn có thể sao chép vào bộ kiểm thử, trình phân tích hoặc tài liệu.

5

5. Sao Chép Tóm Tắt

Sử dụng bản tóm tắt văn bản như báo cáo nhanh: nó liệt kê kết quả với chỉ số và nhóm, sẵn sàng để dán vào ticket, bình luận đánh giá mã hoặc bảng ghi nhớ.

Chi Tiết Cú Pháp & Engine Regex

Lớp Ký Tự & Cơ Bản

Các khối xây dựng cốt lõi được hỗ trợ bởi engine RegExp JavaScript.

MẫuÝ NghĩaVí Dụ
.Bất kỳ ký tự nào trừ ngắt dòng (trừ khi có cờ <code>s</code>)<code>a.c</code> → khớp <code>abc</code>
\d, \w, \sChữ số, ký tự chữ, khoảng trắng<code>\d+</code> → <code>123</code>
\D, \W, \SPhiên bản phủ định của các ký tự trên<code>\S+</code> → chuỗi không chứa khoảng trắng
[abc]Tập hợp ký tự<code>[aeiou]</code> → một nguyên âm đơn
[^abc]Tập hợp phủ định<code>[^0-9]</code> → không phải chữ số
^, $Đầu và cuối đầu vào (hoặc dòng với <code>m</code>)<code>^Hello</code>, <code>!$</code>

Định lượng

Sự lặp lại của các token trước đó, với hành vi tham lam và lười biếng.

MẫuÝ nghĩaVí dụ
?0 hoặc 1 lần<code>colou?r</code> → khớp <code>color</code> và <code>colour</code>
*0 hoặc nhiều lần<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 hoặc nhiều lần<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Chính xác n lần<code>a{3}</code> → <code>aaa</code>
{n,}Ít nhất n lần<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Từ n đến m lần<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Nhóm, Lookaround & Bắt có tên

Các tính năng nâng cao được cung cấp bởi các engine JavaScript hiện đại.

Tính năngCú phápVí dụ
Nhóm bắt giữ(...)<code>(\d{3})-(\d{2})</code> → mã vùng + hậu tố
Nhóm không bắt giữ(?:...)<code>(?:https?|ftp)://</code>
Tham chiếu ngược\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Nhìn trước(?=...), (?!...)<code>\w+(?=! )</code> → từ trước <code>! </code>
Nhìn sau*(?<=...), (?<!...)<code>(?<=#)\w+</code> → văn bản sau <code>#</code> (*trong công cụ hiện đại)
Nhóm có tên(?<name>...)<code>(?<year>\d{4})</code> → <code>groups.year</code> trong kết quả

Cờ (Tùy chọn)

Các cờ của trình kiểm tra ánh xạ trực tiếp đến cờ RegExp của JavaScript.

CờTênHiệu ứng
gToàn cụcTìm tất cả các kết quả thay vì chỉ kết quả đầu tiên
iBỏ qua chữ hoa/thườngSo khớp không phân biệt chữ hoa/thường
mĐa dòng<code>^</code> và <code>$</code> khớp với ranh giới dòng
sDotAll<code>.</code> cũng khớp với ngắt dòng
uUnicodeBật chế độ Unicode và thoát thuộc tính trong công cụ hiện đại
yDínhKhớp chỉ tại chỉ mục hiện tại (dùng với <code>lastIndex</code>)

Hiệu Suất & An Toàn

Công cụ JavaScript cơ bản thực thi biểu thức chính quy đồng bộ. Để giữ giao diện người dùng phản hồi, trình kiểm tra giới hạn số lượng kết quả khớp thu thập (ví dụ: 500 kết quả đầu tiên trong chế độ toàn cục). Điều này giúp tránh làm tràn ngập giao diện, nhưng không thay thế kiểm tra hiệu suất toàn diện cho các mẫu phức tạp hoặc quan trọng.

Công Cụ Regex Dòng Lệnh

Khi mẫu của bạn hoạt động ở đây, bạn có thể tái sử dụng cùng hoặc biểu thức chính quy tương tự trong terminal, script hoặc công việc CI:

Linux / macOS

Tìm kiếm với grep (biểu thức chính quy mở rộng)

grep -E 'pattern' file.txt

Tìm các dòng khớp với mẫu đã cho

Tìm kiếm & thay thế với sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Thay thế hàng loạt trong tệp văn bản

Windows / PowerShell

Tìm kiếm regex PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Tìm mẫu SSN kiểu Mỹ trong tệp nhật ký (ví dụ)

Thay thế regex PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Thay thế đơn giản dựa trên regex

Ứng Dụng Regex Thực Tế

Phát Triển Web & Frontend

  • Xác thực email, tên người dùng, slug hoặc ID tùy chỉnh trong biểu mẫu
  • Trích xuất tham số tuyến đường từ URL hoặc đường dẫn
  • Tạo mẫu nhanh để xác thực phía máy khách
// Xác thực kiểu email cơ bản
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Tham số tuyến đường: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Nhật Ký, Dữ Liệu & Backend

  • Phân tích dấu thời gian và cấp độ từ các dòng nhật ký
  • Chuẩn hóa khoảng trắng và làm sạch văn bản lộn xộn
  • Trích xuất ID, email hoặc tham chiếu từ nội dung không cấu trúc
// Thu gọn khoảng trắng lặp lại
const normalized = text.replace(/\s+/g, ' ').trim();
// Bộ khớp dòng nhật ký đơn giản
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Làm Sạch Dữ Liệu & Script Nhanh

  • Loại bỏ thẻ hoặc thuộc tính HTML không mong muốn trước khi phân tích
  • Trích xuất tất cả URL, email hoặc ID từ một khối văn bản dài
  • Chuẩn bị các trường dữ liệu để nhập vào hệ thống khác

❓ Frequently Asked Questions

Tại sao biểu thức chính quy của tôi không khớp gì cả?

Những lỗi thường gặp: 1) Ký tự đặc biệt không được thoát (như ., ?, +), 2) Quên cờ g khi mong đợi nhiều kết quả khớp, 3) Thiếu neo (^, $) hoặc ranh giới từ (\b), 4) Sử dụng tính năng mà động cơ JavaScript của bạn chưa hỗ trợ (như một số lookbehind). Hãy thử đơn giản hóa mẫu và thêm từng phần lại dần dần.

⏱️Thời gian thực thi (ms) có ý nghĩa gì?

Mỗi lần chạy được tính thời gian bằng performance.now(). Giá trị này là một phép đo đơn lẻ sơ bộ về thời gian biểu thức chính quy thực thi trên đầu vào hiện tại. Nó hữu ích để phát hiện các mẫu rõ ràng là tốn kém, nhưng không phải là một điểm chuẩn đầy đủ hay đảm bảo về hiệu suất trong sản xuất.

🔍Sự khác biệt giữa chế độ khớp đầu tiên và toàn cục là gì?

Không có cờ g, JavaScript chỉ trả về kết quả khớp **đầu tiên** (nếu có). Với g, công cụ kiểm tra sử dụng input.matchAll() để thu thập **tất cả** kết quả khớp (giới hạn ở mức tối đa an toàn), bao gồm chỉ số và nhóm bắt. Sử dụng chế độ toàn cục bất cứ khi nào bạn quan tâm đến nhiều lần xuất hiện.

🌍Công cụ này có hỗ trợ Unicode và ký tự thoát <code>\p{...}</code> không?

Có, khi động cơ JavaScript của bạn hỗ trợ. Bật cờ u để chọn chế độ Unicode, mở khóa các tính năng như \p{Letter} hoặc \p{Script=Greek} trong các trình duyệt hiện đại và phiên bản Node.js gần đây.

⚠️Công cụ này có thể phát hiện backtracking thảm khốc không?

Công cụ kiểm tra có thể gợi ý về các mẫu chậm thông qua thời gian thực thi, nhưng không thể ngăn chặn hoàn toàn backtracking thảm khốc: động cơ cơ bản vẫn chạy đồng bộ. Hãy sử dụng công cụ này như một hệ thống cảnh báo sớm, sau đó điểm chuẩn và xem xét kỹ các mẫu phức tạp trong mã nguồn của riêng bạn.

Pro Tips

Best Practice

Xây dựng biểu thức chính quy của bạn từng phần nhỏ. Bắt đầu với thứ gì đó đơn giản khớp được, sau đó thêm neo, nhóm và bộ định lượng từng bước.

Best Practice

Sử dụng nhóm bắt có tên (<code>(?<name>...)</code>) bất cứ khi nào có thể. Chúng làm cho các kết quả khớp của bạn tự giải thích và dễ đọc hơn nhiều trong quá trình xem xét mã.

Best Practice

Cẩn thận với <code>.*</code> và các bộ định lượng lồng nhau. Chúng có thể gây backtracking nặng trên đầu vào lớn. Hãy làm cho các mẫu cụ thể hơn hoặc giới hạn lặp lại với <code>{n,m}</code>.

Best Practice

Khi gỡ lỗi, tạm thời loại bỏ cờ <code>g</code> và tập trung vào kết quả khớp đầu tiên để đơn giản hóa mô hình tư duy.

Additional Resources

Other Tools