Hệ sinh thái Volade — Công cụ Web

Trình kiểm thử regex

Kiểm thử biểu thức chính quy online ngay tức thì : văn bản được tô sáng ngay khi gõ, bảng kết quả khớp hiển thị chỉ số, độ dài và các nhóm bắt, thẻ Thay thế áp dụng mẫu với $1 và $&, thẻ Giải thích tách mẫu ra từng phần tử, và thẻ Hiệu năng đo lường rủi ro ReDoS. Miễn phí, không cần đăng ký và 100 % cục bộ : văn bản của bạn không bao giờ rời khỏi trình duyệt.

6 chế độ kiểm thử0 byte gửi lên máy chủ10 ví dụ sẵn sàng dùng
Công cụ

Trình kiểm thử regex online của bạn

Nhập một mẫu, chọn các cờ, dán văn bản : các kết quả khớp hiện nổi bật và trong bảng, không cần nút « Chuyển đổi ».

Trình kiểm thử regex

Trực tuyến Phát triển, Code & Data
Đăng nhập
Phím tắt : Ctrl+Enter tính lại
Sẵn sàng.

                  
Các kết quả khớp được tô sáng ngay trong văn bản gốc, trong lúc bạn gõ.
#Kết quả khớpChỉ sốĐộ dàiNhóm
Phân tích, thay thế và giải thích trong lúc nhập · Ctrl+Enter tính lại thẻ đang hoạt động · không gửi mạng · 100 % cục bộ, không có gì rời khỏi thiết bị của bạn.
0,0 0Bình luận Tất cả công cụ
Miễn phí hay Premium ?

Trình kiểm thử regex miễn phí và không giới hạn : không cần tài khoản, không phải cài đặt, không gửi mạng. Premium mở khóa toàn bộ hệ sinh thái Volade.

Miễn phíTô sáng, bảng kết quả khớp và nhóm bắt
Miễn phíThay thế theo mẫu với $1, $& và nhóm có tên
Miễn phíGiải thích mẫu, thư viện ví dụ và bảng tra cứu
PremiumĐồng bộ đám mây được mã hóa cho mẫu và đoạn kiểm thử
PremiumTruy cập API và script dùng chung giữa các công cụ trong hệ sinh thái
Mở khóa Premium
Tính năng

Kiểm thử, thay thế và giải thích regex, không giới hạn

Một bộ máy duy nhất lo phần phân tích, thay thế và hiểu mẫu — mà không bao giờ rời khỏi thiết bị của bạn.

Tô sáng và bảng kết quả khớp

Mỗi kết quả khớp được tô sáng trong văn bản gốc và liệt kê kèm chỉ số, độ dài và giá trị của từng nhóm bắt, có đánh số hoặc có tên. Các trường hợp biên đều được xử lý : mẫu không khớp, đầu vào nhiều MB, khớp có độ dài bằng không và mức trần 2 000 kết quả hiển thị dưới trường.

Kiểm thử một mẫu

Thay thế với nhóm

Thẻ Thay thế áp dụng mẫu vào văn bản nguồn và hiển thị đầu ra trực tiếp : $1 và $2 chèn lại các nhóm bắt, $& là kết quả khớp đầy đủ, $<nom> là một nhóm có tên. Số lần thay thế được đếm riêng, và công cụ báo cho bạn khi thiếu cờ g khiến chỉ lần xuất hiện đầu tiên được thay thế.

Thay thế văn bản

Giải thích, ví dụ và hiệu năng

Thẻ Giải thích tách mẫu thành lớp, escape, nhóm, dự đoán và lượng từ, kèm ý nghĩa và ví dụ cho từng phần tử. Thẻ Ví dụ tải mười mẫu đã kiểm chứng — e-mail, URL, ngày, IPv4, mật khẩu mạnh — và thẻ Hiệu năng đo thời gian chạy thực để nhận diện rủi ro backtracking thảm họa.

Khám phá các chế độ
Cách hoạt động

Viết, kiểm tra và sửa mẫu trong ba bước

Không cần cài đặt, không cần đăng ký : công cụ luôn sẵn sàng, trên cả điện thoại và máy tính.

Nhập mẫu

Nhập biểu thức chính quy vào trường chung, chọn các cờ bạn cần : kết quả được tính lại ngay khi gõ. Lỗi cú pháp được dịch sang tiếng Việt dưới trường — ngoặc chưa đóng, lớp chưa đóng, lượng từ mồ côi — thay vì thông báo thô của trình duyệt.

Dán văn bản của bạn

Văn bản được tô sáng và bảng kết quả khớp được lấp đầy cùng lúc. Đây là bước mọi người thường bỏ qua — và cũng là bước lộ ra phần lớn mẫu sai : một neo bị quên, hoa thường chưa được phủ, một dấu chấm không nuốt xuống dòng.

Giải thích rồi đo

Sang thẻ « Giải thích » để đọc mẫu theo từng dòng, sửa nó, rồi kiểm tra trong « Hiệu năng » rằng thời gian chạy còn xa so với 250 ms báo hiệu rủi ro ReDoS. Lịch sử cục bộ giữ các mẫu gần đây để tải lại chỉ với một nhấp.

Tham khảo nhanh

Biểu thức chính quy trong một cái nhìn

Điều phần lớn nhà phát triển kiểm tra trước khi đọc một mẫu — với bảng tra cứu đầy đủ trong thẻ « Bảng tra cứu ».

Phần tửÝ nghĩaVí dụ
.bất kỳ ký tự nào, trừ dòng mớia.c → abc
\dmột chữ số thập phân\d{3} → 123
\wmột chữ cái, một chữ số hoặc một gạch dưới\w+ → volade_1
\smột khoảng trắng, một tab, một xuống dòng\s+ → «  »
^ $đầu và cuối chuỗi^abc$ → abc
*không lần xuất hiện trở lên, phiên bản tham lamab*c → ac, abbc
+một lần xuất hiện trở lênab+c → abc
?không hoặc một lần xuất hiệncolou?r → color, colour
{n,m}từ n đến m lần xuất hiện\d{2,4} → 1234
(...)nhóm bắt(ha)+ → haha

« Kiểm thử biểu thức chính quy » nghĩa là gì ?

Kiểm thử biểu thức chính quy (« regex test online », « tester regex javascript ») nghĩa là chạy một mẫu trên một văn bản thật và quan sát đúng những gì bộ máy trả về : các chuỗi khớp, vị trí của chúng, và giá trị của các nhóm bắt. Một mẫu « có vẻ đúng » không nói lên gì cho đến khi nó chạy trên dữ liệu của bạn — đó chính là khoảng cách duy nhất đáng kể giữa regex trong tutorial và regex thực tế.

Việc kiểm thử trả lời ba câu hỏi khác nhau. Nó có khớp không : bảng kết quả khớp cho biết ngay dòng đầu tiên. Ở đâu và bao nhiêu : chỉ số và độ dài cho thấy neo có ở đúng chỗ hay không. Nó bắt được gì : các nhóm đánh số hoặc có tên cho thấy phần bạn định trích xuất có đúng là phần đó hay không.

Những siêu ký tự tạo nên khác biệt

Dấu chấm . thay thế bất kỳ ký tự nào trừ dòng mới — nên mới có cờ s khi văn bản của bạn nhiều dòng. Các lượng từ *, + và ? là tham lam : chúng dừng ngay khi số lần lặp là đủ. Hậu tố ? (*?, +?, {2,5}?) đảo ngược hành vi này và cho ra phiên bản lười biếng, phiên bản gần như luôn nên ưu tiên khi một .* nuốt mất cuối dòng.

Ngoặc vuông định nghĩa một lớp : [abc] chấp nhận một ký tự trong số các ký tự được liệt kê, [^abc] mọi thứ trừ chúng, [a-z0-9] một dải. Lưu ý phép phủ định ở đầu lớp — [^...] chỉ dành cho vị trí đầu tiên, nếu không ^ lại thành ký tự thường. Dấu ống | tách các nhánh thay thế và có độ ưu tiên thấp : ^cat|dog$ nghĩa là « toàn bộ văn bản là cat » hoặc « toàn bộ văn bản là dog », không phải « cat hoặc dog ở đầu hay ở cuối » — khi đó phải nhóm lại : ^(?:cat|dog)$.

Nhóm, lookahead và lookbehind

Ngoặc tròn có chức năng bắt. Nhóm 1 truy cập bằng $1 ở phía thay thế và \1 ở phía mẫu, các nhóm có tên với $<nom> và \k<nom> — dễ đọc hơn hẳn khi có từ ba nhóm. (?:...) gộp lại mà không tạo số thứ tự, nên ưu tiên dùng khi bạn chỉ bắt để giữ cấu trúc.

Các dự đoán (lookaround) kiểm tra mà không tiêu thụ : (?=...) yêu cầu phần theo sau phải khớp, (?!...) cấm điều đó, (?<=...) và (?<!...) làm điều tương tự với phần đứng trước. Nhờ vậy mà ta buộc một ký tự đặc biệt phải có trong mật khẩu mà không đưa nó vào nhóm bắt : ^(?=.*\d)(?=.*[A-Z]).{12,}$.

ReDoS : khi regex trở thành quả bom hẹn giờ

Khái niệm ReDoS (Regular Expression Denial of Service) xuất phát từ cơ chế backtracking : trước một đầu vào gần như hợp lệ, một mẫu như (a+)+$ sẽ thử mọi cách để cắt các chữ « a » trước khi thất bại, và số lần bùng nổ tăng theo cấp số nhân. Hai thói quen : kiểm thử mẫu trên một dung lượng thực tế — thẻ Hiệu năng làm việc đó cho bạn — và không bao giờ chạy một regex không kiểm chứng được trên đầu vào từ bên ngoài mà không giới hạn kích thước. Trên máy chủ, một regex bị treo đóng băng toàn bộ worker cho đến khi timeout kết thúc.

JavaScript, PCRE, Python : cùng nền tảng, vài khác biệt

Trình kiểm thử dùng bộ máy mặc định của trình duyệt, tức là ECMAScript. Các cú pháp cơ bản — lớp, lượng từ, nhóm, lookahead, cờ g i m s u y — dùng chung cho PCRE (PHP, Perl), cho Python với re, cho Java và Go. Các khác biệt chủ yếu nằm ở lookbehind (trước đây JavaScript không có, nay đã hỗ trợ), ở các thuộc tính Unicode và ở các cờ nội tuyến như (?i), chỉ có ở PCRE. Vì vậy chuyển một mẫu từ ngôn ngữ này sang ngôn ngữ khác vẫn là việc tỉ mỉ — không phải sáng tạo.

Khuyến nghị cho

Nhà phát triển front-end và back-end (kiểm tra biểu mẫu, đọc log, di chuyển dữ liệu), ops và DevOps (lọc cấu hình, quy tắc WAF), tester và chuyên viên phân tích (trích cột, kiểm định dạng), biên tập viên và chuyên viên phân tích dữ liệu (dọn tệp), sinh viên (hiểu siêu ký tự), và bất kỳ ai cần một trình kiểm thử biểu thức chính quy nhanh, đầy đủ và bảo mật — kèm theo trình định dạng JSON, công cụ mã hóa và giải mã URL, công cụ mã hóa và giải mã Base64 và công cụ mã hóa và giải mã JWT.

FAQ

Câu hỏi thường gặp về trình kiểm thử regex

Mọi điều bạn muốn biết trước khi kiểm thử, thay thế hay giải thích một mẫu.

Làm thế nào để kiểm thử biểu thức chính quy online ?

Nhập mẫu vào trường « Biểu thức chính quy », chọn các cờ g, i, m, s, u hoặc y, rồi dán văn bản của bạn : các kết quả khớp được tô sáng trong văn bản gốc và liệt kê trong bảng kèm chỉ số, độ dài và giá trị của từng nhóm bắt. Mọi thứ được tính lại ngay khi gõ, không cần nút.

Các cờ g, i, m, s, u và y có nghĩa là gì ?

g tìm mọi kết quả khớp thay vì chỉ lần đầu, i bỏ qua hoa thường, m làm cho ^ và $ có hiệu lực ở đầu và mỗi dòng, s làm cho dấu chấm khớp với dòng mới, u bật cú pháp Unicode như \p{L}, và y buộc bắt đầu đúng tại vị trí con trỏ. Đây là các cờ của trình thực thi JavaScript, được PCRE và hầu hết ngôn ngữ hiện đại dùng y hệt.

Làm thế nào để thay thế văn bản bằng regex ?

Sang thẻ « Thay thế », nhập mẫu và chuỗi thay thế, rồi đọc đầu ra. $1, $2 chèn lại các nhóm bắt, $& là kết quả khớp đầy đủ, và $ theo tên dùng cho nhóm có tên. Không có cờ g, chỉ lần xuất hiện đầu tiên được thay thế : công cụ nhắc bạn dưới trường.

Làm thế nào để giải thích biểu thức chính quy theo từng dòng ?

Thẻ « Giải thích » tách mẫu thành các phần tử — lớp, escape, nhóm, lookaround, lượng từ — và cho mỗi phần tử ý nghĩa cùng một ví dụ văn bản khớp cụ thể. Đây là cách nhanh nhất để hiểu một regex kế thừa từ dự án, hoặc để kiểm tra rằng regex bạn vừa viết đúng là làm điều bạn tin rằng.

Biểu thức chính quy là gì và gồm những siêu ký tự nào ?

Biểu thức chính quy là một mô tả tập hợp chuỗi, được một bộ máy khớp mẫu diễn giải. Các siêu ký tự . * + ? ^ $ | ( ) [ ] { } có ý nghĩa riêng : dấu chấm thay thế bất kỳ ký tự nào, * và + lặp lại, ^ và $ neo, | tách các nhánh thay thế và ngoặc tròn tạo nhóm bắt. Tất cả các ký tự còn lại đều là ký tự thường, và dấu gạch chéo ngược biến chúng thành ký tự thường khi chúng là ký tự dành riêng.

ReDoS là gì và làm sao để tránh ?

ReDoS (Regular Expression Denial of Service) xảy ra khi một mẫu dựng sai — thường là một nhánh lồng nhau như (a+)+ — nhân số lần thử backtracking theo cấp số nhân trước một đầu vào gần như khớp. Thẻ « Hiệu năng » đo thời gian chạy trên một dung lượng được tạo và báo có rủi ro ngay khi mẫu vượt 250 ms. Trên máy chủ của bạn, hãy đặt giới hạn kích thước đầu vào và ưu tiên các bộ máy tuyến tính.

Tại sao regex của tôi không trả về kết quả khớp nào ?

Những nguyên nhân thường gặp nhất : neo ^ và $ dùng mà thiếu cờ m trên văn bản nhiều dòng, một lớp ký tự chưa đóng, hoa thường không được phủ vì thiếu cờ i, dấu chấm không nuốt xuống dòng khi thiếu cờ s, hoặc một mẫu mô tả đúng nghĩa là thứ khác với điều bạn quan sát. Thẻ « Giải thích » làm những chênh lệch này hiện ra chỉ trong một giây.

Công cụ có gửi văn bản của tôi lên máy chủ không ?

Không : phân tích, tô sáng, thay thế và giải thích đều chạy hoàn toàn trong trình duyệt của bạn, không có yêu cầu mạng hay tài khoản, kể cả khi ngoại tuyến. Điều đó cần thiết để dán một log ứng dụng, một tệp cấu hình hoặc một đoạn dữ liệu chứa thông tin đăng nhập. Mẫu, các cờ và văn bản nằm trong bộ nhớ cục bộ của thiết bị và có thể xóa bằng một nhấp.

Trình kiểm thử regex 100 % cục bộ : văn bản của bạn không bao giờ rời khỏi máy tính

Khác với các trình kiểm thử regex online thông thường, không có dòng dữ liệu nào được gửi đi : phân tích, tô sáng, thay thế, giải thích và đo hiệu năng đều chạy hoàn toàn trong trình duyệt, không có thư viện bên thứ ba hay yêu cầu mạng. Nhờ vậy mà bạn có thể dán một log ứng dụng thật, một tệp cấu hình hoặc một đoạn dữ liệu chứa thông tin đăng nhập — kể cả khi ngoại tuyến hoặc trên mạng công cộng. Mẫu, các cờ, văn bản và lịch sử nằm trong bộ nhớ cục bộ của thiết bị.

Giấy phép Premium Volade thêm tùy chọn đồng bộ đám mây, được mã hóa, tách biệt với công cụ — phần còn lại vẫn miễn phí và không giới hạn, không cần đăng ký.

Một giấy phép premium, tất cả công cụ web của bạn

Trình kiểm thử regex, trình định dạng JSON, công cụ mã hóa và giải mã URL, Base64, trình giải mã JWT, các trình tạo và hàng chục công cụ miễn phí — và toàn bộ hệ sinh thái Volade với một giấy phép duy nhất.

Một giấy phép, toàn bộ hệ sinh thái cao cấp Trình duyệt · CMS · Máy tính · Di động · Script · API · Công cụ · Database
Một giấy phép, toàn bộ hệ sinh thái Mua Premium Đăng nhập