Lập trình

Regex Tester & Extractor

Test mẫu regex theo thời gian thực, highlight kết quả, xem capture group và tạo code snippet.

Vùng Regex
Số khớp: 2
KẾT QUẢ HIGHLIGHT
product-120
order-42
invalid
NHÓM BẮT
#Khớp đầy đủNhóm
1product-120g1: product | g2: 120
2order-42g1: order | g2: 42
Tham chiếu

Regex Cheat Sheet

TokenÝ nghĩa
.Any character except newline
\dDigit (0-9)
\wWord character
\sWhitespace
^ / $Start / end of line
[abc]Any character in class
[^abc]Any character not in class
( ... )Capture group
(?: ... )Non-capturing group
a|bAlternation
* + ?Quantifiers
{n,m}Range quantifier

Code Snippet

const regex = new RegExp('(\\w+)-(\\d+)', 'g');
const text = 'product-120
order-42
invalid';
const matches = [...text.matchAll(regex.global ? regex : new RegExp(regex.source, regex.flags + 'g'))];
console.log(matches);
Thẻ văn bản có vài đoạn được tô sáng dưới kính lúp, bên cạnh ký hiệu dấu sao và dấu ngoặc

Cách sử dụng

  1. Gõ biểu thức vào MẪU REGEX, ví dụ (\w+)-(\d+), và đặt CỜ như g, i hoặc m.
  2. Dán văn bản cần tìm vào VĂN BẢN MẪU. Mọi kết quả khớp được tô sáng ở KẾT QUẢ HIGHLIGHT ngay khi bạn gõ, và Số khớp cập nhật theo.
  3. Mở NHÓM BẮT để xem phần khớp đầy đủ và từng nhóm, đúng những gì bạn sẽ đọc được trong code.
  4. Chọn ngôn ngữ và bấm SAO CHÉP CODE để lấy đoạn code chạy được bằng JavaScript, TypeScript, Python, PHP, C# hoặc Go.

Thử biểu thức chính quy theo thời gian thực

Công cụ thử regex cho thấy chính xác mẫu khớp với gì trước khi bạn đưa vào code, đỡ vòng đoán–chạy–sửa. Kết quả cập nhật khi gõ, lỗi cú pháp được báo ngay, và nhóm bắt cho thấy mỗi cặp ngoặc đã lấy được gì.

Công cụ dùng bộ máy regex JavaScript có sẵn trong trình duyệt, giống Node.js và code front-end. Phần lớn mẫu thông dụng chạy giống hệt trong Python, PHP, C# và Go, nhưng một vài tính năng khác nhau giữa các bộ máy, nên hãy chạy thử đoạn code đã sinh trong ngôn ngữ của bạn một lần.

Các cờ (flags)

Cờ thay đổi cách toàn bộ mẫu hoạt động:

CờTênTác dụng
gglobalTìm mọi kết quả khớp, không chỉ kết quả đầu tiên
iignore caseCoi chữ hoa và chữ thường là như nhau
mmultilineCho ^ và $ khớp ở đầu và cuối mỗi dòng
sdotAllCho . khớp cả ký tự xuống dòng
uunicodeXử lý mẫu và văn bản theo ký tự Unicode, cần khi làm việc với tiếng Việt có dấu và emoji
ystickyChỉ khớp tại vị trí hiện tại
dindicesGhi lại vị trí bắt đầu và kết thúc của từng nhóm

Những mẫu hay được tìm nhất

Vài mẫu khởi đầu để dán vào rồi sửa: chỉ gồm chữ số ^\d+$; kiểm tra email đơn giản [^\s@]+@[^\s@]+\.[^\s@]+; số điện thoại di động Việt Nam 10 số bắt đầu bằng 0 ^0\d{9}$; ngày dạng 24/10/2026 (\d{2})/(\d{2})/(\d{4}); và khoảng trắng lặp \s{2,}. Hãy thử mỗi mẫu với cả văn bản nên khớp lẫn văn bản không nên khớp.

Cẩn thận với mẫu lồng lặp như (a+)+ trên văn bản dài: nhiều bộ máy regex có thể chạy rất lâu. Nên dùng lớp ký tự cụ thể thay cho .* khi có thể, và thêm ^ với $ khi cần khớp toàn bộ chuỗi. Lưu ý \w trong JavaScript chỉ gồm a–z, A–Z, 0–9 và dấu gạch dưới, không gồm chữ có dấu như "ă" hay "ơ"; dùng \p{L} kèm cờ u nếu cần khớp chữ tiếng Việt.

Câu hỏi thường gặp

Công cụ dùng loại regex nào?

JavaScript (ECMAScript), có sẵn trong trình duyệt. Mẫu dùng tính năng riêng của PCRE, Python hay .NET có thể cần sửa nhẹ; đoạn code được sinh ra giúp bạn kiểm tra trong ngôn ngữ của mình.

Vì sao mẫu của tôi chỉ tìm được một kết quả?

Không có cờ g (global), regex JavaScript dừng sau kết quả đầu tiên. Công cụ vẫn liệt kê mọi kết quả, nhưng hãy thêm g trong code nếu bạn cần lấy hết.

Làm sao khớp dấu chấm hay dấu ngoặc thật?

Thêm dấu gạch ngược phía trước: \. khớp dấu chấm, \( khớp ngoặc tròn và \[ khớp ngoặc vuông. Không có dấu gạch ngược, các ký tự này mang nghĩa đặc biệt.

Văn bản của tôi có bị tải lên không?

Không. Việc so khớp chạy trong trình duyệt, nên bạn có thể thử mẫu trên log hay dữ liệu không được chia sẻ ra ngoài.

Gặp lỗi hoặc có ý tưởng? Báo lỗi hoặc góp ý

Share

Bạn cũng có thể thích