Lesson 24 — Regex & Text Processing
3 module dưới đây giúp bạn (1) chơi với regex thật trên trình duyệt, gõ pattern và text → highlight match; (2) build pattern từng bước bằng cách click các "token" (digit, anchor, quantifier...) → ghép thành regex hoàn chỉnh; (3) chọn pattern thực tế (email/phone/URL/date/IP/UUID) và xem giải thích từng phần + test case mẫu.
⚠ Lưu ý: trình duyệt chạy regex JavaScript (ECMAScript), không phải Go RE2.
Đại đa số pattern trong lesson tương thích cả hai. Một số khác biệt nhỏ: JS dùng
(?<name>...) cho named group,
Go dùng (?P<name>...). Backreference và lookahead JS có nhưng Go thì KHÔNG (xem mục 13 của README).
1. Regex playground — pattern + text, highlight realtime
Preset:
✓ Compile OK
💡 Cách dùng: sửa pattern hoặc text → highlight cập nhật. Vùng vàng = match toàn bộ.
Nếu pattern có capture group, mỗi group hiển thị màu khác và in ra bên dưới.
Pattern sai cú pháp → status đổi đỏ kèm lỗi.
2. Pattern builder — click token, ghép pattern
Click các token bên dưới để ghép thành pattern. Click vào chip phía dưới để xóa token đã thêm. Pattern xây xong sẽ tự test trên text mẫu bên cạnh.
Anchor
Character class
Quantifier (đặt SAU một class/literal)
Group & alternation
Pattern bạn đang xây
click token ở trên để thêm…
💡 Gợi ý xây pattern:
- Validate toàn chuỗi là số:
^+\d+++$→^\d+$ - Phone VN:
^+(+\+84… (gõ thêm trong playground vì builder không có literal)|+0+)+\d+{9}+$ - Date:
^+\d{4}+-+\d{2}+-+\d{2}+$
3. Common pattern picker — chọn rồi xem giải phẫu
Giải phẫu từng phần
Test trên các input mẫu
Code đầy đủ trong solutions.go. Lý thuyết chi tiết trong README.md hoặc bấm nút 📖 Đọc README ở góc phải dưới.