Trình Soạn Thảo
Đang chờ đầu vào hoặc thực thi regex…
Hành Độ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. 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. 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. 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. 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. 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ĩa | Ví 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, \s | Chữ số, ký tự chữ, khoảng trắng | <code>\d+</code> → <code>123</code> |
| \D, \W, \S | Phiê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ĩa | Ví 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ăng | Cú pháp | Ví 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ên | Hiệu ứng |
|---|---|---|
| g | Toàn cục | Tìm tất cả các kết quả thay vì chỉ kết quả đầu tiên |
| i | Bỏ qua chữ hoa/thường | So 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 |
| s | DotAll | <code>.</code> cũng khớp với ngắt dòng |
| u | Unicode | Bật chế độ Unicode và thoát thuộc tính trong công cụ hiện đại |
| y | Dính | Khớ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.txtTì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.txtThay 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.txtTì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.txtThay 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ả?
., ?, +), 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ì?
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ì?
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?
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?
Pro Tips
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.
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ã.
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>.
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
- Bộ Làm Đẹp CSS
- Bộ Làm Đẹp HTML
- Bộ Làm Đẹp Javascript
- Bộ Làm Đẹp PHP
- Bộ Chọn Màu
- Bộ Trích Xuất Sprite
- Bộ Giải Mã Base64
- Bộ Mã Hóa Base64
- Bộ Định Dạng Csharp
- Bộ Định Dạng CSV
- Dockerfile Formatter
- Bộ Định Dạng Elm
- Bộ Định Dạng ENV
- Bộ Định Dạng Go
- Bộ Định Dạng GraphQL
- Bộ Định Dạng HCL
- Bộ Định Dạng INI
- Bộ Định Dạng JSON
- Bộ Định Dạng Latex
- Bộ Định Dạng Markdown
- Bộ Định Dạng ObjectiveC
- Php Formatter
- Bộ Định Dạng Proto
- Bộ Định Dạng Python
- Bộ Định Dạng Ruby
- Bộ Định Dạng Rust
- Bộ Định Dạng Scala
- Bộ Định Dạng Tập Lệnh Shell
- Bộ Định Dạng SQL
- Trình Định Dạng SVG
- Trình Định Dạng Swift
- Trình Định Dạng TOML
- Typescript Formatter
- Trình Định Dạng XML
- Trình Định Dạng YAML
- Trình Định Dạng Yarn
- Bộ Thu Nhỏ CSS
- Html Minifier
- Javascript Minifier
- Bộ Thu Nhỏ JSON
- Trình Thu Nhỏ XML
- Trình Xem Tiêu Đề HTTP
- PDF Sang Văn Bản
- Bộ Kiểm Tra Xếp Hạng SERP
- Tra Cứu Whois