Test regex thay thế văn bản
Replacement patterns:
$& - match$1, $2 - groups$` - before$' - afterCông cụ test regex replace online free của Tấn Phát Digital giúp bạn thử nghiệm và debug các pattern regex thay thế văn bản một cách trực quan và nhanh chóng. Nhập regex pattern, replacement string và text gốc để xem ngay kết quả thay thế realtime. Hỗ trợ đầy đủ các flags: g (global - thay thế tất cả), i (case-insensitive - không phân biệt hoa thường), m (multiline - xử lý nhiều dòng). Hiển thị số lượng matches tìm được để verify pattern đúng. Hỗ trợ tất cả replacement patterns: $& (toàn bộ match), $1 $2 (capture groups), $` (text trước match), $' (text sau match). Copy kết quả với một click. Xử lý 100% trên browser, bảo mật dữ liệu. Hoàn toàn miễn phí, không cần đăng ký.
Regex replace là một trong những công cụ mạnh mẽ nhất để xử lý và biến đổi text trong lập trình. Các use cases phổ biến bao gồm: thay thế hàng loạt theo pattern (đổi tất cả số điện thoại sang format mới), reformat data (chuyển đổi date format từ DD/MM/YYYY sang YYYY-MM-DD), clean up text (xóa tất cả HTML tags, loại bỏ khoảng trắng thừa), transform code (rename variables, refactor imports), extract và restructure data (lấy email từ text và format lại). Tuy nhiên, viết regex replace đúng không hề dễ dàng - pattern có thể match sai hoặc miss cases, replacement string có thể không hoạt động như expected, một sai lầm nhỏ có thể corrupt toàn bộ data. Regex Replace Tester giúp bạn test pattern và replacement trước khi áp dụng vào code production. Xem ngay kết quả để verify đúng như mong đợi. Đếm số matches để đảm bảo không miss hoặc over-match. Debug replacement patterns ($1, $2, $&) một cách trực quan. Tiết kiệm hàng giờ debug và tránh bugs khó phát hiện.
JavaScript regex replace hỗ trợ nhiều special replacement patterns mạnh mẽ. $& (dollar ampersand) - chèn toàn bộ matched substring, hữu ích khi muốn wrap match trong tags hoặc thêm prefix/suffix. $1, $2, $3... (numbered groups) - chèn nội dung của capture group tương ứng, cho phép reorder hoặc restructure data. $` (dollar backtick) - chèn phần text TRƯỚC matched substring. $' (dollar quote) - chèn phần text SAU matched substring. $$ - chèn literal dollar sign. Ví dụ: pattern (\w+)@(\w+) với replacement '$2: $1' sẽ đổi 'user@domain' thành 'domain: user'. Pattern (\d{2})/(\d{2})/(\d{4}) với replacement '$3-$2-$1' sẽ đổi date format từ DD/MM/YYYY sang YYYY-MM-DD.
Global flag (g) - thay thế TẤT CẢ các matches trong text, không chỉ match đầu tiên. Không có flag g, chỉ match đầu tiên được thay thế. Hầu hết trường hợp bạn sẽ cần flag này. Case-insensitive flag (i) - không phân biệt chữ hoa và chữ thường khi matching. 'Hello' sẽ match cả 'hello', 'HELLO', 'HeLLo'. Hữu ích khi search text mà không biết chính xác case. Multiline flag (m) - thay đổi behavior của ^ và $. Bình thường ^ match đầu string và $ match cuối string. Với flag m, ^ match đầu MỖI DÒNG và $ match cuối MỖI DÒNG. Cần thiết khi xử lý text nhiều dòng và muốn match theo từng dòng. Kết hợp flags: có thể dùng nhiều flags cùng lúc, ví dụ 'gi' cho global + case-insensitive.
Xóa HTML tags: pattern <[^>]+> với replacement rỗng. Trim whitespace: pattern ^\s+|\s+$ với replacement rỗng. Normalize spaces: pattern \s+ với replacement ' ' (single space). Format phone number: pattern (\d{3})(\d{3})(\d{4}) với replacement '($1) $2-$3'. Convert camelCase to snake_case: pattern ([a-z])([A-Z]) với replacement '$1_$2' rồi toLowerCase(). Extract domain from URL: pattern https?://([^/]+) với replacement '$1'. Remove duplicate lines: pattern ^(.*)$(\n\1)+$ với replacement '$1' và flag gm. Escape special characters: pattern [.*+?^${}()|[\]\\] với replacement '\\$&'. Wrap words in tags: pattern (\w+) với replacement '<span>$1</span>'.
Pattern không match gì cả: Kiểm tra có escape đúng special characters không (. * + ? cần \). Kiểm tra flags - có cần case-insensitive không? Match quá nhiều (greedy): Mặc định quantifiers (*, +, ?) là greedy - match nhiều nhất có thể. Thêm ? để làm lazy: .*? thay vì .*. Capture groups không hoạt động: Đảm bảo dùng () cho capture, không phải (?:) (non-capturing). Đếm đúng số group - $1 là group đầu tiên. Replacement không thay thế hết: Thiếu flag g - chỉ thay thế match đầu tiên. Thêm g để thay thế tất cả. Special characters trong replacement: $ có ý nghĩa đặc biệt. Muốn literal $ thì dùng $$. Backslash cũng cần escape trong một số trường hợp.
Công cụ này sử dụng JavaScript regex engine, nhưng syntax tương tự trong nhiều ngôn ngữ. Python: re.sub(pattern, replacement, string) - dùng \1 \2 thay vì $1 $2 cho groups. PHP: preg_replace($pattern, $replacement, $string) - syntax gần giống JavaScript. Java: string.replaceAll(pattern, replacement) - dùng $1 $2 cho groups. C#: Regex.Replace(string, pattern, replacement) - dùng $1 $2 cho groups. Ruby: string.gsub(/pattern/, 'replacement') - dùng \1 \2 cho groups. Go: regexp.ReplaceAllString(string, replacement) - dùng $1 $2 cho groups. Lưu ý: mỗi ngôn ngữ có thể có một số khác biệt nhỏ về syntax và features. Test kỹ khi chuyển regex giữa các ngôn ngữ.
Luôn test với sample data trước khi apply vào production data. Backup data gốc trước khi chạy batch replace. Sử dụng non-capturing groups (?:) khi không cần capture để tăng performance. Prefer specific patterns over generic - [a-zA-Z] tốt hơn .* khi biết rõ format. Sử dụng word boundaries \b để tránh partial matches. Comment regex phức tạp để người khác (và bạn trong tương lai) hiểu được. Break down complex patterns thành nhiều bước đơn giản hơn. Validate input trước khi apply regex để tránh unexpected behavior. Xem xét edge cases: empty strings, special characters, unicode. Performance: với text rất lớn, regex phức tạp có thể chậm - cân nhắc alternatives.
$& đại diện cho TOÀN BỘ matched substring, bất kể có capture groups hay không. $1 đại diện cho nội dung của capture group ĐẦU TIÊN (phần trong cặp ngoặc đơn đầu tiên). Ví dụ: với pattern (\w+)@(\w+) match 'user@domain', $& = 'user@domain', $1 = 'user', $2 = 'domain'. Dùng $& khi muốn giữ nguyên match và thêm gì đó xung quanh. Dùng $1 $2 khi muốn restructure hoặc reorder các phần của match.
Mặc định, JavaScript regex replace chỉ thay thế match ĐẦU TIÊN. Để thay thế TẤT CẢ matches, bạn cần bật flag Global (g). Trong công cụ này, toggle switch 'Global (g)' để bật/tắt. Trong code: 'text'.replace(/pattern/g, 'replacement'). Đây là behavior khác với một số ngôn ngữ khác như Python re.sub() mặc định thay thế tất cả.
Các ký tự . * + ? ^ $ { } [ ] ( ) | \ có ý nghĩa đặc biệt trong regex. Để match chúng như literal characters, cần escape bằng backslash. Ví dụ: \. để match dấu chấm, \* để match dấu sao, \? để match dấu hỏi. Trong JavaScript string, backslash cũng cần escape: '\\.' hoặc dùng raw string nếu có. Tip: character class [.] cũng match literal dot mà không cần escape.
Greedy (mặc định): quantifiers *, +, ? match NHIỀU NHẤT có thể. Pattern a.*b với text 'aXXbYYb' sẽ match 'aXXbYYb' (toàn bộ). Lazy: thêm ? sau quantifier để match ÍT NHẤT có thể. Pattern a.*?b với cùng text sẽ match 'aXXb' (ngắn nhất). Lazy matching quan trọng khi muốn match từng phần riêng biệt, ví dụ match từng HTML tag thay vì từ tag đầu đến tag cuối.
Bình thường, ^ match đầu STRING và $ match cuối STRING. Với flag m (multiline), ^ match đầu MỖI DÒNG và $ match cuối MỖI DÒNG. Ví dụ: pattern ^Hello với flag m sẽ match 'Hello' ở đầu bất kỳ dòng nào, không chỉ đầu text. Hữu ích khi xử lý text nhiều dòng như log files, CSV, code. Lưu ý: flag m KHÔNG thay đổi behavior của . (dot vẫn không match newline, cần flag s cho điều đó).
Trong JavaScript code, có thể dùng function làm replacement: str.replace(/pattern/, (match, p1, p2) => { return processedResult; }). Function nhận match và các capture groups làm arguments, return string thay thế. Rất mạnh mẽ cho complex transformations. Tuy nhiên, công cụ online này chỉ hỗ trợ string replacement với special patterns ($&, $1, etc.), không hỗ trợ function replacement.
Có, regex phức tạp với text lớn có thể chậm. Các patterns có thể gây 'catastrophic backtracking': nested quantifiers như (a+)+ hoặc (a|a)+. Để tối ưu: tránh nested quantifiers, sử dụng specific patterns thay vì .*, sử dụng non-capturing groups (?:) khi không cần capture, với text rất lớn cân nhắc streaming hoặc chunking. Trong hầu hết use cases thông thường, performance không phải vấn đề.
Không. Công cụ này xử lý 100% trên browser của bạn bằng JavaScript. Text bạn nhập không được gửi đi đâu cả, đảm bảo bảo mật cho dữ liệu nhạy cảm. Bạn có thể verify bằng cách mở DevTools Network tab và thấy không có request nào được gửi khi thực hiện replace.
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.
Tạo file .env và .env.example cho dự án.
Tạo .gitignore cho Node.js, Python, Java.
Tạo mock JSON data cho API testing.
Format và phân tích API response.
Test REST API: GET, POST, PUT, DELETE.
Chuyển đổi Binary, Hex, Base32.
Mã hóa/giải mã Base64.
Chuyển đổi Decimal, Binary, Hex.
Tạo CSS box-shadow trực quan.
Tính quyền file Linux.
Kiểm tra WCAG accessibility.
Tạo bảng màu ngẫu nhiên.