Tan Phat Media

Regex Cheatsheet

Tham khảo nhanh các pattern Regular Expression

Character Classes
.Bất kỳ ký tự nào (trừ newline)
\dChữ số [0-9]
\DKhông phải chữ số
\wWord character [a-zA-Z0-9_]
\WKhông phải word character
\sWhitespace (space, tab, newline)
\SKhông phải whitespace

Regex Cheatsheet - Tài liệu tham khảo Regular Expression đầy đủ nhất

Regex Cheatsheet của Tấn Phát Digital là tài liệu tham khảo Regular Expression bằng tiếng Việt, chia làm 5 nhóm có thể tra cứu và copy trực tiếp: 1) CHARACTER CLASSES - . (bất kỳ ký tự), \d/\D (digit/non-digit), \w/\W (word/non-word char), \s/\S (whitespace/non-whitespace). 2) ANCHORS - ^ (đầu string), $ (cuối string), \b (word boundary), \B (non-boundary). 3) QUANTIFIERS - * (0+), + (1+), ? (0 hoặc 1), {n} (chính xác n lần), {n,} (từ n trở lên), {n,m} (từ n đến m lần). 4) GROUPS & LOOKAROUND - (abc) capturing group, (?:abc) non-capturing group, (?=abc) positive lookahead, (?!abc) negative lookahead, (?<=abc) positive lookbehind, (?<!abc) negative lookbehind. 5) COMMON PATTERNS - 6 pattern dùng ngay: Email, số điện thoại Việt Nam, URL, Hex color, Date (YYYY-MM-DD), Strong password. Mỗi pattern có nút copy một click, tương thích với regex engine của JavaScript, Python, PHP, Java.

Tính năng nổi bật

  • Character Classes: ., \d, \D, \w, \W, \s, \S kèm giải thích tiếng Việt
  • Anchors và Boundaries: ^, $, \b, \B với ví dụ cụ thể
  • Quantifiers: *, +, ?, {n}, {n,}, {n,m}
  • Groups: capturing (abc), non-capturing (?:abc)
  • Lookahead và Lookbehind: (?=), (?!), (?<=), (?<!)
  • 6 Common patterns dùng ngay: Email, SĐT Việt Nam, URL, Hex color, Date, Strong password
  • Tìm kiếm nhanh trong tất cả patterns theo pattern hoặc mô tả
  • Copy pattern một click
  • Giải thích bằng tiếng Việt dễ hiểu
  • Tương thích JavaScript, Python, PHP, Java

Tại sao cần Regex Cheatsheet?

Regular Expression là công cụ mạnh mẽ để xử lý text, nhưng syntax của nó khó nhớ. Ngay cả developers có kinh nghiệm cũng thường xuyên phải tra cứu. Cheatsheet này giúp bạn: (1) Tra cứu nhanh syntax mà không cần Google; (2) Copy các patterns phổ biến đã được test; (3) Hiểu ý nghĩa của từng ký tự đặc biệt; (4) Học regex qua ví dụ thực tế. Thay vì mất 10 phút search và đọc documentation, bạn có thể tìm được pattern cần thiết trong vài giây.

Lợi ích khi sử dụng

  • Tra cứu regex syntax nhanh chóng
  • Copy patterns đã được test sẵn
  • Tiết kiệm thời gian viết regex từ đầu
  • Học regex qua ví dụ thực tế
  • Tránh lỗi syntax phổ biến
  • Hỗ trợ nhiều ngôn ngữ lập trình

Hướng dẫn sử dụng Regex Cheatsheet

  1. 1Sử dụng ô tìm kiếm để tìm nhanh pattern hoặc ký tự cần tra cứu
  2. 2Hoặc click vào các tab để xem theo category: Characters, Anchors, Quantifiers, Groups, Common
  3. 3Đọc mô tả để hiểu ý nghĩa của pattern
  4. 4Click nút Copy để copy pattern vào clipboard
  5. 5Paste vào code của bạn và điều chỉnh nếu cần

Regex cơ bản cần nhớ

Những patterns cơ bản nhất trong cheatsheet này: . (bất kỳ ký tự trừ newline), \d (chữ số 0-9), \w (chữ cái, số, underscore), \s (whitespace), ^ (đầu string), $ (cuối string), * (0 hoặc nhiều lần), + (1 hoặc nhiều lần), ? (0 hoặc 1 lần), (abc) (group để capture). Nắm vững nhóm Characters, Anchors và Quantifiers ở 3 tab đầu tiên là bạn có thể viết được phần lớn regex thông thường như validate độ dài chuỗi, tìm số, tách từ.

Character Classes: khi nào dùng \d, \w, \s

\d tương đương [0-9], chỉ match chữ số - dùng khi validate số điện thoại, mã bưu điện, năm sinh. \w tương đương [a-zA-Z0-9_], match chữ cái, số và underscore - dùng cho username, slug, biến trong code. \s match khoảng trắng, tab, xuống dòng - dùng để tách từ hoặc loại bỏ khoảng trắng thừa. Các phiên bản viết hoa \D, \W, \S mang nghĩa phủ định - ví dụ \D match mọi ký tự không phải chữ số. Dấu chấm . khác các ký tự trên vì nó match gần như mọi ký tự (trừ newline theo mặc định), nên cẩn thận không lạm dụng . khi chỉ cần match một loại ký tự cụ thể.

Quantifiers: kiểm soát số lần lặp lại

Quantifiers quyết định một ký tự hoặc group được lặp bao nhiêu lần. * cho phép 0 hoặc nhiều lần (kể cả không xuất hiện), + bắt buộc ít nhất 1 lần, ? cho phép 0 hoặc đúng 1 lần (thường dùng để đánh dấu phần tùy chọn). Với số lần lặp cụ thể, dùng {n} (chính xác n lần, ví dụ \d{4} match đúng 4 chữ số cho năm), {n,} (từ n lần trở lên) hoặc {n,m} (từ n đến m lần, ví dụ mật khẩu trong tab Common dùng {8,} nghĩa là từ 8 ký tự trở lên). Nhầm giữa {n} và {n,m} là lỗi phổ biến - {4} chỉ chấp nhận đúng 4 ký tự trong khi {4,} chấp nhận 4 ký tự trở lên.

Groups và Lookaround: capture và kiểm tra context

Tab Groups trong cheatsheet có 2 loại group và 4 loại lookaround. Capturing group (abc) lưu lại phần match được để dùng lại sau (ví dụ trong replace hoặc trích xuất dữ liệu). Non-capturing group (?:abc) chỉ nhóm các ký tự lại để áp quantifier chung mà không lưu kết quả, giúp regex chạy nhẹ hơn khi không cần lấy lại giá trị. Lookahead (?=abc) và (?!abc) kiểm tra phần phía sau vị trí hiện tại có khớp abc hay không mà không tiêu tốn (consume) ký tự đó trong kết quả match - ví dụ pattern mật khẩu mạnh trong tab Common dùng nhiều lookahead (?=.*[a-z])(?=.*[A-Z])(?=.*\d) để bắt buộc chuỗi phải chứa cả chữ thường, chữ hoa và chữ số mà không quan tâm thứ tự. Lookbehind (?<=abc) và (?<!abc) làm điều tương tự nhưng kiểm tra phía trước.

Giải thích 6 pattern trong tab Common

Email ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ chấp nhận phần trước @ gồm chữ, số và một số ký tự đặc biệt thường gặp, sau đó bắt buộc có domain và phần mở rộng ít nhất 2 ký tự. SĐT Việt Nam ^(0|84|\+84)[0-9]{9}$ chấp nhận số bắt đầu bằng 0, 84 hoặc +84 theo sau đúng 9 chữ số. URL ^https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?.*$ bắt buộc có http hoặc https, theo sau là domain hợp lệ. Hex color ^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$ chấp nhận cả mã màu 6 ký tự và dạng rút gọn 3 ký tự, có hoặc không có dấu #. Date YYYY-MM-DD ^\d{4}-\d{2}-\d{2}$ chỉ kiểm tra đúng định dạng số, không kiểm tra ngày/tháng có hợp lệ về mặt lịch (ví dụ 2026-13-99 vẫn khớp pattern này). Strong password ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$ dùng 3 lookahead để bắt buộc có chữ thường, chữ hoa, chữ số và tổng độ dài tối thiểu 8 ký tự.

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

Regex có khác nhau giữa các ngôn ngữ không?

Cú pháp cơ bản trong cheatsheet này (character classes, anchors, quantifiers, groups, lookaround) giống nhau giữa JavaScript, Python, PHP, Java. Tuy nhiên, cách khai báo regex và một số flags có thể khác - JavaScript dùng /pattern/flags hoặc new RegExp(), Python dùng re.compile(), PHP cần thêm delimiter như '/pattern/'.

Greedy và lazy quantifiers khác nhau thế nào?

Greedy (*, +) match nhiều nhất có thể. Lazy (*?, +?) match ít nhất có thể. Ví dụ với '<div>text</div>': '<.*>' match toàn bộ chuỗi, '<.*?>' chỉ match '<div>'. Cheatsheet này liệt kê quantifiers cơ bản ở dạng greedy; muốn dùng lazy, thêm dấu ? ngay sau quantifier.

Làm sao escape ký tự đặc biệt?

Dùng backslash (\) trước ký tự đặc biệt. Ví dụ: \. để match dấu chấm thật thay vì 'bất kỳ ký tự', \$ để match ký hiệu dollar, \( để match dấu ngoặc tròn. Các pattern trong tab Common đã escape sẵn dấu chấm trong domain, ví dụ \.[a-zA-Z]{2,} ở pattern Email.

Lookahead và lookbehind dùng khi nào?

Dùng khi muốn kiểm tra context xung quanh mà không đưa context đó vào kết quả match. Ví dụ pattern Strong password trong tab Common dùng nhiều positive lookahead (?=.*[a-z]) để bắt buộc có ký tự thường ở đâu đó trong chuỗi, nhưng không 'tiêu tốn' phần đã kiểm tra nên các lookahead có thể chồng lên nhau kiểm tra cùng một vị trí bắt đầu.

Capturing group và non-capturing group khác nhau ở đâu?

Capturing group (abc) lưu lại phần match để truy xuất sau này (ví dụ group(1) trong code, hoặc $1 khi replace). Non-capturing group (?:abc) chỉ dùng để nhóm ký tự áp dụng quantifier chung, không lưu lại kết quả. Dùng non-capturing khi chỉ cần nhóm logic mà không cần lấy lại giá trị, giúp regex rõ ràng và nhẹ hơn.

Cheatsheet này có pattern cho named groups hoặc alternation (|) không?

Không. Cheatsheet hiện chỉ có capturing group, non-capturing group và 4 loại lookaround (positive/negative lookahead, positive/negative lookbehind). Named groups (?<name>abc) và alternation | là các tính năng regex hợp lệ nhưng chưa có trong danh sách tra cứu của công cụ này.

Vì sao pattern Date YYYY-MM-DD chấp nhận cả ngày tháng không tồn tại?

Vì pattern ^\d{4}-\d{2}-\d{2}$ chỉ kiểm tra đúng định dạng 4 số - 2 số - 2 số, không kiểm tra logic lịch (tháng phải từ 01-12, ngày phải hợp lệ theo từng tháng). Ví dụ '2026-13-99' vẫn khớp pattern này dù không phải ngày tháng thật. Muốn validate ngày tháng chính xác, cần thêm logic kiểm tra bằng code sau khi regex match, hoặc dùng thư viện xử lý ngày tháng chuyên dụng.

Pattern SĐT Việt Nam trong tab Common có nhận diện đúng đầu số nhà mạng không?

Pattern ^(0|84|\+84)[0-9]{9}$ chỉ kiểm tra tiền tố (0, 84 hoặc +84) và tổng đúng 9 chữ số theo sau, không kiểm tra đầu số cụ thể có thuộc nhà mạng nào đang hoạt động hay không. Số hợp lệ về format nhưng không tồn tại (ví dụ đầu số đã ngừng cấp) vẫn có thể khớp pattern này.

Tại sao nên dùng non-capturing group (?:) thay vì capturing group () trong URL pattern?

Trong pattern URL ^https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?.*$, group (\.[\w\-]+) là capturing group dùng để lặp lại phần domain (ví dụ .co.uk), nhưng nếu không cần lấy lại giá trị match được của riêng phần lặp cuối cùng, có thể đổi thành (?:\.[\w\-]+)+ để tránh JavaScript lưu thêm dữ liệu capture không dùng đến, giúp regex thực thi nhẹ hơn một chút.

Có thể kết hợp nhiều pattern trong tab Common lại với nhau không?

Có thể, nhưng cần cẩn thận với các anchor ^ và $. Ví dụ muốn validate một chuỗi vừa có định dạng email vừa giới hạn độ dài, nên viết lại thành một pattern mới thay vì nối 2 pattern có sẵn, vì mỗi pattern trong tab Common đã có ^ và $ riêng nên nối trực tiếp sẽ gây lỗi cú pháp hoặc logic sai.

Regex Cheatsheet này có hỗ trợ Unicode hay tiếng Việt có dấu không?

Các character class như \w mặc định chỉ match ký tự ASCII (a-z, A-Z, 0-9, _), không tự động bao gồm ký tự tiếng Việt có dấu như ă, â, đ. Muốn match tiếng Việt có dấu, cần liệt kê rõ range Unicode hoặc dùng flag unicode (u) của regex engine, cheatsheet này chưa có mục riêng cho flags.

Vì sao nên copy pattern rồi tự test lại thay vì dùng ngay trong production?

Các pattern trong tab Common là mẫu tham khảo phổ biến, phù hợp cho phần lớn trường hợp thông thường nhưng chưa chắc bao phủ hết edge case của từng hệ thống (ví dụ định dạng email nội bộ đặc biệt, số điện thoại quốc tế). Nên test với dữ liệu thật của dự án trước khi đưa vào validate ở production, đặc biệt với dữ liệu liên quan thanh toán hoặc bảo mật.

Từ khóa liên quan

  • regex cheatsheet
  • regular expression
  • regex patterns
  • regex reference
  • regex tutorial
  • biểu thức chính quy
  • regex examples
  • regex syntax
  • common regex patterns
  • regex guide
  • character classes regex
  • regex anchors quantifiers
  • capturing vs non-capturing group
  • regex lookahead lookbehind
  • regex email pattern
  • regex số điện thoại việt nam
  • regex date pattern
  • regex strong password pattern

Hợp tác ngay với Tấn Phát Digital

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.

Công cụ Developer Tools liên quan

.env Generator

Tạo file .env và .env.example cho dự án.

.gitignore Generator

Tạo .gitignore cho Node.js, Python, Java.

API Mock Generator

Tạo mock JSON data cho API testing.

API Response Formatter

Format và phân tích API response.

API Tester

Test REST API: GET, POST, PUT, DELETE.

Postman Alternative - API Testing Tool Online với Collections, Environment & File Upload

Postman Alternative miễn phí - Test APIs với Collections, Multiple Environments, Pre-request Scripts, Collection Runner, File Upload (form-data), Tests/Assertions, Code Generation (cURL, JS, Python, Node.js). Browser-based, không cần cài đặt. Save requests, export/import collections, auto-save history. Hỗ trợ Bearer Token, Basic Auth, API Key. Hoàn hảo cho API development và testing.

Swagger API Tester - Test API với OpenAPI/Swagger Spec & Authentication Online

Swagger API Tester miễn phí - Import OpenAPI/Swagger specification và test API endpoints với đầy đủ authentication (Bearer Token/JWT, Basic Auth, API Key). Hỗ trợ OpenAPI 3.0, Swagger 2.0, auto-parse endpoints, parameters, request body. Giao diện như Swagger UI với color-coded methods, grouped endpoints, real-time testing. Hoàn hảo cho API development, testing, debugging secured APIs.

Base Converter

Chuyển đổi Binary, Hex, Base32.

Base64 Encoder

Mã hóa/giải mã Base64.

Binary Converter

Chuyển đổi Decimal, Binary, Hex.

Box Shadow Generator

Tạo CSS box-shadow trực quan.

Chmod Calculator

Tính quyền file Linux.

Dịch vụ của Tấn Phát Digital

Đang xây sản phẩm và cần thêm người làm phần nặng?

Gói giải pháp doanh nghiệp

Nền tảng custom cho ngân hàng, y tế và sàn B2B, chuẩn ISO 27001, GDPR, PCI-DSS, SLA 99.99%.

Từ 50.000.000đXem chi tiết →

Dịch vụ phát triển Blockchain & Web3

Smart contract, dApp và NFT marketplace đa chuỗi, audit bảo mật đầy đủ trước khi lên mainnet.

Từ 50.000.000đXem chi tiết →

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook