Home/Tools/Regex Tester

Regex Tester (Live)

FreeReal-timeNamed GroupsSubstitution Mode
Regex Tester (Live)
Pattern
//g
Flags:
0 matches
Mode:
Test String
0 chars · 1 line
Possible catastrophic backtracking detected
Regex execution was stopped after 1 second. Check for nested quantifiers like (a+)+ that can cause exponential backtracking.
Matches
0 matches

Enter a pattern and test string to see matches.

Substitution Result
Common Patterns
About This Tool

This tester uses JavaScript RegExp — the same engine that runs in your browser and Node.js. All matching happens instantly in-browser; your test strings are never sent to any server.

JS RegExp vs PHP PCRE
PHP uses PCRE syntax which differs slightly. Named groups in PHP: (?P<name>...) — in JS: (?<name>...). Lookaheads, backreferences, and most syntax are compatible.

Có một câu đùa quen thuộc trong giới lập trình: "Bạn có một vấn đề, bạn dùng regex để giải quyết — bây giờ bạn có hai vấn đề." Regex (Regular Expression) nổi tiếng là mạnh nhưng khó đọc, dễ sai, và debug rất mệt nếu không có công cụ hỗ trợ. Tool Regex Tester này giúp bạn viết, kiểm tra và debug regex theo thời gian thực — thấy ngay match ở đâu, group nào bắt được gì, không cần chạy code.

Regular Expression (Regex) là gì?

Regular Expression — gọi tắt là regex hoặc regexp — là một chuỗi ký tự đặc biệt định nghĩa một pattern (mẫu) để tìm kiếm, so khớp hoặc thao tác với chuỗi văn bản. Regex được hỗ trợ trong hầu hết mọi ngôn ngữ lập trình: JavaScript, Python, PHP, Java, Go, Ruby…

Ví dụ đơn giản: pattern \d{3}-\d{4} sẽ khớp với số điện thoại dạng 123-4567. Pattern [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} là regex kiểm tra email — trông phức tạp nhưng có logic rất rõ ràng khi được "dịch" từng phần.

Regex được dùng để: validate dữ liệu đầu vào (email, số điện thoại, mật khẩu), tìm kiếm và thay thế text, extract thông tin từ log file, parse chuỗi có cấu trúc, và nhiều hơn thế.

Cú pháp regex cơ bản cần biết

Ký hiệuÝ nghĩaVí dụ
.Bất kỳ ký tự nào (trừ xuống dòng)a.c khớp "abc", "a1c", "a-c"
*0 hoặc nhiều lần lặpab*c khớp "ac", "abc", "abbc"
+1 hoặc nhiều lần lặpab+c khớp "abc", "abbc" nhưng không khớp "ac"
?0 hoặc 1 lần (tùy chọn)colou?r khớp cả "color" và "colour"
{n}Đúng n lần\d{4} khớp đúng 4 chữ số
{n,m}Từ n đến m lần\d{2,4} khớp 2, 3 hoặc 4 chữ số
[abc]Một trong các ký tự trong ngoặc[aeiou] khớp một nguyên âm bất kỳ
[^abc]Ký tự KHÔNG nằm trong ngoặc[^0-9] khớp ký tự không phải số
^Bắt đầu chuỗi (hoặc dòng)^Hello chỉ khớp nếu chuỗi bắt đầu bằng "Hello"
$Kết thúc chuỗi (hoặc dòng)world$ chỉ khớp nếu chuỗi kết thúc bằng "world"
(abc)Capturing group — bắt nhóm(\d{4})-(\d{2}) bắt năm và tháng riêng
(?:abc)Non-capturing group — nhóm không bắtNhóm logic mà không lưu kết quả
a|bHoặc — a hoặc bcat|dog khớp "cat" hoặc "dog"
\dChữ số (0-9)Tương đương [0-9]
\wKý tự chữ-số-gạch dướiTương đương [a-zA-Z0-9_]
\sKhoảng trắng (space, tab, newline)Dùng để tìm/xoá whitespace thừa

Regex flags — điều chỉnh cách hoạt động

FlagTênTác dụng
gGlobalTìm tất cả match, không dừng ở match đầu tiên
iCase-insensitiveKhông phân biệt chữ hoa/thường: /hello/i khớp cả "Hello", "HELLO"
mMultiline^$ áp dụng cho từng dòng, không chỉ đầu/cuối toàn chuỗi
sDotallDấu . khớp cả ký tự xuống dòng
uUnicodeXử lý chuỗi Unicode đúng cách, cần thiết khi làm việc với tiếng Việt, emoji…

Cách sử dụng Regex Tester

  • Bước 1: Nhập regex pattern vào ô Pattern — không cần thêm dấu / bao quanh.
  • Bước 2: Chọn flags phù hợp: g để tìm tất cả, i để không phân biệt hoa/thường…
  • Bước 3: Dán văn bản cần test vào ô Test String — các đoạn khớp sẽ được highlight ngay lập tức.
  • Bước 4: Xem chi tiết các MatchCapturing Groups ở phần kết quả bên dưới.

Mọi thứ hoạt động real-time — chỉnh pattern là kết quả cập nhật ngay, không cần nhấn nút.

Ví dụ regex thực tế hay dùng

Mục đíchRegex pattern
Validate địa chỉ email^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$
Validate số điện thoại Việt Nam^(0|\+84)(3|5|7|8|9)\d{8}$
Validate URL (http/https)^https?:\/\/[\w.-]+(:\d+)?(\/.*)?$
Tìm tất cả số trong chuỗi\d+ với flag g
Xoá khoảng trắng đầu và cuối^\s+|\s+$ replace với ""
Validate mật khẩu (8+ ký tự, có hoa, thường, số)^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
Tìm thẻ HTML<[^>]+>
Extract ngày dạng DD/MM/YYYY(\d{2})\/(\d{2})\/(\d{4})

Lỗi thường gặp khi viết regex

  • Quên escape ký tự đặc biệt: Các ký tự . * + ? ( ) [ ] { } ^ $ | \ đều có ý nghĩa đặc biệt trong regex. Để match nghĩa đen của chúng, phải escape bằng \. Ví dụ: muốn match dấu chấm thật phải viết \., không phải ..
  • Greedy vs Lazy matching: Mặc định regex là "greedy" — cố match càng nhiều càng tốt. <.+> trên chuỗi <a>text</a> sẽ match toàn bộ từ <a> đến </a>. Thêm ? để lazy: <.+?> chỉ match từng thẻ riêng lẻ.
  • Quên flag g: Không có flag global, regex chỉ trả về match đầu tiên — gây nhầm lẫn khi bạn muốn tìm tất cả.
  • Anchoring sai: Pattern \d+ khớp số ở bất kỳ đâu trong chuỗi. Nếu muốn validate chuỗi chỉ gồm số, phải dùng ^\d+$.

Kết luận

Regex là một trong những kỹ năng "siêu năng lực" của developer — học một lần, dùng được mọi ngôn ngữ, giải quyết được vô số bài toán xử lý chuỗi. Cái khó nhất là giai đoạn đầu khi nhìn pattern mà không biết nó đang làm gì. Tool Regex Tester này chính là người đồng hành trong giai đoạn đó — test nhanh, xem kết quả ngay, hiểu từng phần.

Khám phá thêm các tool hữu ích tại codetuthub.com/tools.

Thông báo hệ thống
Thông tin
Online Tools