Test và debug Regular Expression trực tiếp
Không có kết quả match
g - Global (tìm tất cả)
i - Case insensitive
m - Multiline
s - Dotall (. match newline)
Công cụ test Regular Expression (Regex) online miễn phí của Tấn Phát Digital dành cho developers. Test và debug regex patterns realtime với syntax highlighting. Highlight tất cả matches trong test string với màu sắc rõ ràng. Hỗ trợ đầy đủ JavaScript regex flags: g (global), i (case insensitive), m (multiline), s (dotall). Hiển thị danh sách tất cả matches với index và captured groups. 10+ preset regex patterns phổ biến: Email, Phone Vietnam, URL, IP Address, Date, Credit Card. Hiển thị lỗi cú pháp regex với message chi tiết. Copy pattern với một click. Xử lý 100% trên trình duyệt. Hữu ích cho validation, data extraction, search & replace.
Regular Expression (Regex) là ngôn ngữ để mô tả text patterns. Nó là công cụ cực kỳ mạnh mẽ được sử dụng trong hầu hết ngôn ngữ lập trình. Ứng dụng phổ biến: Validation - kiểm tra email, phone, URL, password có đúng format không. Data extraction - lấy tất cả emails từ một văn bản, extract numbers từ string. Search & Replace - tìm và thay thế theo pattern phức tạp. Parsing - phân tích log files, CSV, HTML. Filtering - lọc data theo điều kiện phức tạp. Tại sao cần Regex Tester? Regex syntax phức tạp và dễ sai. Một ký tự sai có thể thay đổi hoàn toàn kết quả. Tool này giúp bạn: Test pattern trước khi dùng trong code. Debug tại sao regex không match như mong đợi. Học regex bằng cách thử nghiệm. Verify edge cases với nhiều test strings.
Character classes: . (any char), \d (digit), \w (word char), \s (whitespace), [abc] (a or b or c), [^abc] (not a, b, c), [a-z] (range). Quantifiers: * (0+), + (1+), ? (0 or 1), {n} (exactly n), {n,} (n+), {n,m} (n to m). Anchors: ^ (start), $ (end), \b (word boundary). Groups: (abc) (capture group), (?:abc) (non-capture), (?=abc) (lookahead), (?!abc) (negative lookahead). Escaping: \. \* \+ \? \^ \$ \{ \} \[ \] \\ \| \( \) để match literal characters.
Email: ^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$ - basic email validation. Phone Vietnam: ^(0|\+84)[0-9]{9,10}$ - số điện thoại VN. URL: ^https?:\/\/[\w.-]+\.[a-zA-Z]{2,}.*$ - HTTP/HTTPS URLs. IP Address: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ - IPv4. Date (DD/MM/YYYY): ^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/\d{4}$ Password strong: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$ - min 8 chars, upper, lower, number, special.
Flag 'g' (global): Tìm TẤT CẢ matches trong string, không chỉ match đầu tiên. Không có g, regex dừng sau match đầu tiên. Flag 'i' (case insensitive): Không phân biệt chữ hoa/thường. /hello/i match 'Hello', 'HELLO', 'hElLo'. Có thể kết hợp: /hello/gi tìm tất cả 'hello' không phân biệt hoa thường.
Các ký tự đặc biệt cần escape bằng backslash \: . * + ? ^ $ { } [ ] \ | ( ). Ví dụ: Match dấu chấm: \. (không phải . vì . match any char). Match $100: \$100. Match (text): \(text\). Match backslash: \\ (cần 2 backslashes). Trong JavaScript string, cần double escape: '\\d' để có regex \d.
Cú pháp cơ bản giống nhau, nhưng có differences giữa các 'flavors': JavaScript: Không có lookbehind (ES2018 mới có), không có named groups (ES2018). Python: Có named groups (?P<name>...), verbose mode. PCRE (PHP, Perl): Đầy đủ features nhất. Java: Cần double escape trong strings. Tool này dùng JavaScript regex engine. Nếu dùng ngôn ngữ khác, verify lại trong environment đó.
Greedy (mặc định): Match càng nhiều càng tốt. /.+/ trên 'aaa' match cả 'aaa'. Lazy (thêm ?): Match càng ít càng tốt. /.+?/ trên 'aaa' match 'a'. Ví dụ quan trọng: /<.+>/ trên '<div>text</div>' match cả '<div>text</div>' (greedy). /<.+?>/ match chỉ '<div>' rồi '</div>' (lazy). Dùng lazy khi muốn match shortest possible.
Captured groups (parentheses) có 2 mục đích: Grouping: (ab)+ match 'ab', 'abab', 'ababab'. Capturing: Lưu matched text để dùng sau. Trong replace: $1, $2 reference groups. Trong code: match[1], match[2]. Ví dụ: /(\d{2})\/(\d{2})\/(\d{4})/ match date và capture day ($1), month ($2), year ($3). Non-capturing group (?:...) chỉ grouping, không capture.
Lookahead (?=...): Match nếu followed by pattern, nhưng không include trong match. /\d+(?=px)/ match '100' trong '100px' nhưng không match '100' trong '100em'. Negative lookahead (?!...): Match nếu NOT followed by pattern. /\d+(?!px)/ match '100' trong '100em'. Lookbehind (?<=...) và (?<!...): Tương tự nhưng check phía trước. JavaScript ES2018+ mới support lookbehind.
Common issues: Quên flag g - chỉ match lần đầu. Quên escape special chars - . match any char, không phải literal dot. Greedy matching - .* match quá nhiều. Anchors - thiếu ^ $ nên match substring. Whitespace - \s không match trong string. Case sensitivity - quên flag i. Debug: Thêm/bớt từng phần của pattern để isolate issue. Dùng tool này để visualize matches.
CÓ, regex có thể rất chậm nếu viết không tốt. Catastrophic backtracking: Patterns như (a+)+ trên input 'aaaaaaaaaaaaaaaaaaaaaaab' có thể freeze browser. Nguyên nhân: Nested quantifiers với overlapping possibilities. Giải pháp: Tránh nested quantifiers. Dùng atomic groups hoặc possessive quantifiers (nếu supported). Test với long inputs trước khi deploy. Set timeout cho regex operations.
Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.