Trình kiểm thử biểu thức chính quy

Giới thiệu về công cụ

Chạy biểu thức chính quy trên văn bản đầu vào và kiểm tra các vị trí khớp. Mọi xử lý diễn ra hoàn toàn trong trình duyệt của bạn; không có dữ liệu nào được gửi đi.

Chạy thử

Cách sử dụng

  1. Nhập biểu thức chính quy và các cờ.
  2. Nhấn “Chạy thử” để hiển thị các đoạn khớp trong văn bản.

Ví dụ (tập biểu thức chính quy dùng ngay theo danh mục / 100+)

Cơ bản / khoảng trắng / dòng
  • Chỉ dòng trống: ^\s*$ (m)
  • Khoảng trắng ở đầu: ^\s+ (m)
  • Khoảng trắng ở cuối: \s+$ (m)
  • Khoảng trắng đầu/cuối (để trim): ^\s+|\s+$ (m)
  • Khoảng trắng liên tiếp (nén còn 1): \s{2,}
  • Ký tự hiển thị (không phải khoảng trắng): \S+
  • Chỉ ASCII: ^[\x00-\x7F]+$
  • ASCII in được: ^[\x20-\x7E]+$
  • Dòng chứa ký tự ngoài ASCII: [^\x00-\x7F]
  • Ranh giới từ: \bword\b
Số / tiền tệ
  • Số nguyên (có thể có dấu): ^-?\d+$
  • Số thập phân (có thể có dấu): ^-?\d*\.\d+$
  • Số (nguyên hoặc thập phân): ^-?(?:\d+|\d*\.\d+)$
  • Tách nhóm mỗi 3 chữ số (ví dụ: 1,234,567): ^\d{1,3}(?:,\d{3})+$
  • Số tiền (¥ hoặc $, cho phép nhóm): ^(?:¥|\$)\s?\d{1,3}(?:,\d{3})*(?:\.\d{2})?$
  • Phần trăm: ^\d{1,3}(?:\.\d+)?%
  • Dạng khoa học: ^[+-]?(?:\d+\.?\d*|\.\d+)[eE][+-]?\d+$
  • Hệ thập lục phân: ^(?:0x)?[0-9A-Fa-f]+$
  • Hệ nhị phân: ^[01]+$
  • Hệ bát phân: ^[0-7]+$
Ngày / giờ
  • Ngày YYYY-MM-DD (chỉ định dạng): ^\d{4}-\d{2}-\d{2}$
  • Giờ HH:MM (24h): ^(?:[01]\d|2[0-3]):[0-5]\d$
  • Giờ HH:MM:SS (24h): ^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
  • Ngày giờ ISO8601 (đơn giản): ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$
  • Năm/tháng (YYYY/MM): ^\d{4}/(0[1-9]|1[0-2])$
  • Niên hiệu Nhật (Reiwa R\d+ năm, đơn giản): ^令和\d+年(?:\d+月(?:\d+日)?)?$ (u)
  • Thứ (tiếng Anh, 3 chữ cái): ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun)$
  • Múi giờ (±HH:MM): ^[+-](?:[01]\d|2[0-3]):[0-5]\d$
Liên hệ / địa chỉ (đơn giản)
  • Mã bưu chính Nhật Bản: ^\d{3}-\d{4}$
  • Điện thoại Nhật (0x-xxxx-xxxx, đơn giản): ^0\d{1,4}-\d{1,4}-\d{4}$
  • Điện thoại quốc tế (+mã quốc gia, cho phép khoảng trắng, đơn giản): ^\+\d{1,3}\s?\d+(?:[\s-]\d+)*$
  • Tỉnh thành Nhật (kanji): ^(?:東京都|北海道|(?:京都|大阪)府|.+県)$ (u)
  • Email (mẫu chung): ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
  • Tên người dùng (3–16 chữ số/chữ hoặc gạch dưới): ^[A-Za-z0-9_]{3,16}$
  • Mật khẩu mạnh (ít nhất chữ thường, chữ hoa, số, ký tự đặc biệt; ≥8): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$
Web / URL / HTTP
  • URL (http/https, đơn giản): https?:\/\/\S+
  • Tên miền (không Punycode, đơn giản): ^(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$
  • Host gồm subdomain: ^(?:[A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.[A-Za-z]{2,}$
  • Tham số truy vấn key=value: [?&]([A-Za-z0-9._~-]+)=([^&#]+)
  • Fragment: #\w[\w-]*
  • Phần mở rộng tệp (.png|.jpg|.gif ...): \.(?:png|jpe?g|gif|webp|svg)$ (i)
  • Phương thức HTTP: ^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$
  • Dòng header HTTP: ^[A-Za-z0-9-]+:\s?.+$ (m)
  • Header xác thực Basic: ^Basic\s+[A-Za-z0-9+/=]+$
  • Header token Bearer: ^Bearer\s+[A-Za-z0-9\-\._~\+\/]+=*$
Mạng (IP/MAC/CIDR/UUID/JWT ...)
  • IPv4 (0–255 chính xác): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\b
  • IPv6 (hỗ trợ rút gọn, đơn giản): \b(?:[A-Fa-f0-9]{1,4}:){2,7}[A-Fa-f0-9]{1,4}\b
  • Địa chỉ MAC (ngăn cách bằng :): ^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$
  • Địa chỉ MAC (ngăn cách bằng -): ^(?:[0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$
  • CIDR (IPv4, độ dài 0–32): ^\b(?:\d{1,3}\.){3}\d{1,3}\/(?:[0-9]|[12]\d|3[0-2])\b$
  • UUID v4: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ (i)
  • GUID (không phân biệt hoa/thường): ^{?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}}?$ (i)
  • Base64 (có padding): ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
  • JWT (ba phần ngăn bởi dấu chấm): ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$
  • Khóa công khai SSH (ssh-rsa/ed25519): ^ssh-(?:rsa|ed25519)\s+[A-Za-z0-9+/=]+(?:\s.+)?$
Tệp / đường dẫn / phiên bản
  • Đường dẫn tuyệt đối Windows: ^[A-Za-z]:\\(?:[^\\/:*?"<>|\r\n]+\\)*[^\\/:*?"<>|\r\n]*$
  • Đường dẫn tuyệt đối UNIX: ^\/(?:[^\/\0]+\/)*[^\/\0]*$
  • Tên tệp an toàn (chỉ chữ số/chữ ._-): ^[A-Za-z0-9._-]+$
  • Bắt phần mở rộng tệp: \.([A-Za-z0-9]+)$
  • Hash Git (7–40 ký tự): ^[0-9a-f]{7,40}$
  • SemVer: ^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$
  • Image Docker:tag: ^[a-z0-9]+(?:[._-][a-z0-9]+)*(?::[\w.-]+)?$
  • Tên gói NPM (đơn giản): ^(?:@[\w-]+\/)?[\w.-]+$
  • Slug URL: ^[a-z0-9]+(?:-[a-z0-9]+)*$
Front-end (HTML/CSS/màu sắc)
  • Thẻ HTML (cặp mở/đóng, đơn giản): <([A-Za-z][A-Za-z0-9]*)\b[^>]*>([\s\S]*?)<\/\1>
  • Chú thích HTML: <!--[\s\S]*?-->
  • Giá trị thuộc tính href: href\s*=\s*"(.*?)" (i)
  • Màu CSS (#RGB/#RRGGBB): ^#(?:[0-9A-Fa-f]{3}){1,2}$
  • CSS rgb(): ^rgb\(\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*,\s*(?:[01]?\d?\d|2[0-4]\d|25[0-5])\s*\)$
  • CSS hsl(): ^hsl\(\s*(?:\d|[1-2]\d{2}|3[0-5]\d)\s*,\s*(?:\d|[1-9]\d)%\s*,\s*(?:\d|[1-9]\d)%\s*\)$
  • Đơn vị CSS (px, em ...): ^-?\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%)$
Chuỗi / cú pháp (đoạn mã)
  • Định danh JavaScript (đơn giản): ^[A-Za-z_$][A-Za-z0-9_$]*$
  • Dòng comment JavaScript //: ^\s*\/\/.*$ (m)
  • Comment khối JavaScript: \/\*[\s\S]*?\*\/
  • Chuỗi nháy kép (xử lý escape đơn giản): "(?:[^"\\]|\\.)*"
  • Chuỗi nháy đơn: '(?:[^'\\]|\\.)*'
  • Template literal (đơn giản): `(?:[^`\\]|\\.|\\${[^}]*})*`
  • Khóa JSON: "([A-Za-z0-9_]+)"\s*:
  • Ô CSV (hỗ trợ nháy kép, đơn giản): (?:"(?:[^"]|"")*"|[^,\r\n]*)
  • Trích URL trong nội dung email: https?:\/\/[^\s)>"]+
Bảo mật / kiểm tra đầu vào (thận trọng)
  • Thẻ tín dụng (không kiểm tra Luhn, nhanh): \b(?:\d[ -]*?){13,19}\b
  • VISA (bắt đầu bằng 4, 13/16/19 chữ số): \b4\d{12}(?:\d{3})?(?:\d{3})?\b
  • Mastercard (51–55 / 2221–2720): \b(?:5[1-5]\d{14}|2(?:2[2-9]\d{2}|[3-6]\d{3}|7[01]\d{2}|720\d{2})\d{10})\b
  • Mã My Number Nhật (chỉ định dạng): ^\d{12}$
  • Mã bưu chính + dòng địa chỉ (đơn giản): ^\d{3}-\d{4}\s+.+$
  • Phát hiện thẻ <script> (đơn giản): <\s*script\b[^>]*>[\s\S]*?<\s*\/\s*script\s*>
  • Từ khóa SQL phổ biến (đơn giản): \b(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE)\b (i)

※ Khi dùng để trích xuất hoặc kiểm tra dữ liệu cá nhân hay bí mật, hãy chắc chắn tuân thủ pháp luật và quy định nội bộ.

Log / định dạng
  • Apache/Nginx CLF (đơn giản): ^(\S+)\s+(\S+)\s+(\S+)\s+\[([^\]]+)\]\s+"([^"]+)"\s+(\d{3})\s+(\d+|-)
  • Trích timestamp ISO8601: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})
  • JSON Lines (1 dòng = 1 JSON): ^\{.*\}$ (m)
  • Trích UUID: [0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12} (i)
  • Trích IP (IPv4, đơn giản): \b(?:\d{1,3}\.){3}\d{1,3}\b
Markdown
  • Tiêu đề (#~######): ^(#{1,6})\s+(.+)$ (m)
  • Liên kết: \[([^\]]+)\]\(([^)]+)\)
  • Hình ảnh: !\[([^\]]*)\]\(([^)]+)\)
  • Mã nội tuyến: `([^`]+)`
  • Khối mã (```…```, đơn giản): ```[\s\S]*?```
  • Danh sách gạch đầu dòng (- * +): ^\s*[-*+]\s+.+$ (m)
  • Trích dẫn >: ^\s*>\s+.+$ (m)
Chữ viết tiếng Nhật / loại ký tự (khuyến nghị cờ Unicode u)
  • Chỉ hiragana: ^[\u3041-\u3096]+$ (u)
  • Chỉ katakana: ^[\u30A1-\u30FA\u30FC]+$ (u)
  • Chỉ katakana nửa rộng: ^[\uFF66-\uFF9D\uFF70]+$ (u)
  • Chứa kanji: [\u4E00-\u9FFF] (u)
  • Chỉ ký tự toàn chiều rộng: ^[^\x00-\x7F]+$
  • Chữ số/chữ cái toàn chiều rộng: ^[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+$ (u)
  • Mã bưu chính (hỗ trợ số toàn chiều rộng, đơn giản): ^[0-9\d]{3}-[0-9\d]{4}$ (u)
  • Furigana (katakana toàn chiều rộng): ^[\u30A1-\u30FA\u30FC\s]+$ (u)
Tiện ích xử lý văn bản
  • Xóa số thứ tự đầu “1. ”: ^\s*\d+\.\s* (m)
  • Xóa tiền tố danh sách: ^\s*(?:[-*+]|•|\d+\.)\s* (m)
  • Lấy nội dung trong ngoặc tròn: \(([^)]*)\)
  • Lấy nội dung trong ngoặc kép: "([^"\\]|\\.)*"
  • Trích số tiền yên “¥123,456”: ¥\s?\d{1,3}(?:,\d{3})*
  • Trích miền email: @([A-Za-z0-9.-]+\.[A-Za-z]{2,})
  • Loại bỏ thẻ HTML (đơn giản): <[^>]+>
  • Khoảng trắng lặp → 1: \s{2,}
Khác hữu ích
  • Biển số xe Nhật (rất đơn giản): ^[\u3041-\u3096\u30A1-\u30FA\u4E00-\u9FFF]{1,2}\s?\d{3,4}$ (u)
  • ID video YouTube: (?<=v=|youtu\.be\/)[A-Za-z0-9_-]{11}
  • Tài khoản Twitter/X @handle: @[A-Za-z0-9_]{1,15}
  • Kênh Slack: #[a-z0-9_-]{1,80}
  • Tên màu (một số từ khóa CSS): \b(?:red|green|blue|black|white|gray|silver|maroon)\b (i)
  • Trích chú thích trong ngoặc 〔…〕: [([^]]*)]|【([^】]*)】|〔([^〕]*)〕 (u)
  • Phát hiện katakana nửa rộng: [\uFF61-\uFF9F] (u)
  • Từ tiếng Anh (kèm dấu gạch nối): \b[A-Za-z]+(?:-[A-Za-z]+)*\b
  • Số đơn hàng trong email (ví dụ #12345): #\d{4,}
  • Tên ga Nhật (kết thúc bằng 「駅」): .+駅\b (u)

※ Danh sách trên là bộ mẫu thực dụng “dùng thường xuyên, dán là chạy”. Nếu cần kiểm tra nghiêm ngặt (năm nhuận, tên miền quốc tế, phân tích HTML đầy đủ...), hãy cân nhắc logic hoặc thư viện chuyên dụng.