Chuyển đổi miễn phí

Biểu thức chính quy Người thử nghiệm

Kiểm tra và gỡ lỗi các biểu thức chính quy ngay lập tức trong trình duyệt của bạn. Đánh dấu các kết quả trùng khớp, xem các nhóm chụp và sử dụng chế độ thay thế - miễn phí và riêng tư.

//g
Cờ:

Về công cụ này

Biểu thức chính quy là ngôn ngữ dành riêng cho miền để khớp các mẫu trong văn bản. Chúng đã là một phần của điện toán từ năm 1968 và hiện được tích hợp vào mọi ngôn ngữ lập trình, trình soạn thảo văn bản và công cụ tìm kiếm dòng lệnh hiện đại. Cú pháp ngắn gọn nhưng dễ mắc lỗi: những thay đổi nhỏ tạo ra hành vi khớp khác biệt một cách tinh tế và các biểu thức phức tạp nhanh chóng trở nên không thể đọc được. Trình kiểm tra hiển thị các kết quả khớp trong thời gian thực khi bạn chỉnh sửa mẫu là cách hiệu quả nhất để phát triển và xác minh biểu thức chính quy.

Trình kiểm tra này chạy trong trình duyệt của bạn bằng cách sử dụng công cụ biểu thức chính quy JavaScript (chính là công cụ mà ứng dụng của bạn sử dụng nếu nó chạy trong trình duyệt). Các mẫu và văn bản kiểm tra cập nhật một cách phản ứng: mọi thay đổi sẽ chạy lại trận đấu. Các nhóm phù hợp được đánh dấu, các nhóm đã nắm bắt được liệt kê và các cờ (không phân biệt chữ hoa chữ thường, nhiều dòng, chung) được hiển thị để thử nghiệm.

Cú pháp Regex khác nhau một cách tinh tế giữa các công cụ. JavaScript tuân theo thông số ECMAScript; Python, PCRE (được sử dụng bởi PHP và nhiều ngôn ngữ khác), Java và Go, mỗi ngôn ngữ đều có phương ngữ riêng với các tính năng chồng chéo nhưng không giống nhau. Các mẫu được phát triển ở đây sử dụng cú pháp ECMAScript; tính di động giữa các công cụ yêu cầu kiểm tra tài liệu của từng mục tiêu.

Tại sao nên sử dụng Trình kiểm tra Regex

Lỗi Regex nổi tiếng là khó gỡ lỗi sau khi triển khai. Một mẫu có vẻ hợp lý có thể khớp nhiều hơn hoặc ít hơn dự định, thất bại trong các trường hợp khó khăn hoặc có sự quay lui nghiêm trọng đối với một số đầu vào nhất định. Các mẫu thử nghiệm tương tác với các vấn đề khai thác đầu vào đại diện trước khi xem xét và sản xuất mã.

Các mẫu cũng được hưởng lợi từ tài liệu. Việc hiển thị một biểu thức chính quy cùng với dữ liệu đầu vào phải khớp và dữ liệu đầu vào không khớp sẽ làm cho ý định trở nên rõ ràng. Những người bảo trì trong tương lai (bao gồm cả bạn trong sáu tháng nữa) đánh giá cao các trường hợp thử nghiệm được ghi lại nhiều hơn là họ đánh giá cao những câu nói thông minh.

Cách sử dụng

Nhập mẫu, nhập dữ liệu kiểm tra, xem các kết quả phù hợp được đánh dấu trực tiếp.

  1. Nhập mẫu của bạn: Nhập mẫu biểu thức chính quy vào trường mẫu. Cả biểu thức chính quy theo nghĩa đen (/pattern/flags) và biểu mẫu chỉ có mẫu đều hoạt động; cờ có thể được đặt thông qua đầu vào cờ.
  2. Thêm đầu vào thử nghiệm: Dán văn bản mẫu mà mẫu phải khớp (và lý tưởng nhất là cả văn bản không khớp). Người kiểm tra chạy mẫu dựa trên dữ liệu đầu vào và đánh dấu các kết quả khớp.
  3. Đặt cờ: Các cờ phổ biến: g (toàn cầu, tìm tất cả kết quả khớp), i (không phân biệt chữ hoa chữ thường), m (đa dòng, ^ và $ bắt đầu/kết thúc dòng khớp), s (dotall, . khớp với dòng mới), u (Unicode).
  4. Kiểm tra kết quả: Mỗi trận đấu được đánh dấu trong đầu vào. Các nhóm chụp xuất hiện trong danh sách có chỉ số và giá trị nhóm. Trình kiểm tra cũng hiển thị số lượng kết quả trùng khớp và bất kỳ lỗi biên dịch nào trong mẫu.

Các trường hợp sử dụng phổ biến

Chi tiết kỹ thuật

Regex JavaScript tuân theo đặc tả ECMAScript. Các tính năng chính: các lớp ký tự ([abc], [^abc]), bộ định lượng (*, +, ?, {n,m}), xen kẽ (|), nhóm ((...)), nhóm bắt và không bắt, nhìn về phía trước và nhìn phía sau (công cụ hiện đại), phản hồi ngược, nhóm được đặt tên, thoát thuộc tính Unicode (với cờ u) và tập hợp các chuỗi thoát tiêu chuẩn.

Những điểm khác biệt quan trọng so với PCRE và Python: tính năng hỗ trợ nhìn phía sau gần đây đã có trong JavaScript (2018+); các nhóm được đặt tên sử dụng cú pháp (?<name>...); một số lối thoát Unicode yêu cầu cờ u hoạt động chính xác. Các mẫu dành cho việc sử dụng đa ngôn ngữ phải được kiểm tra dựa trên tài liệu của từng mục tiêu.

Hiệu suất: các công cụ biểu thức chính quy dựa trên hoạt động quay lui (hầu hết bao gồm cả JavaScript) có thể có hoạt động quay lui thảm khốc trên một số mẫu bệnh lý nhất định. Các thử nghiệm làm treo máy thử nghiệm là một dấu hiệu cho thấy mẫu cần được đơn giản hóa - thường bằng cách tránh các bộ định lượng lồng nhau và sự xen kẽ không rõ ràng.

Thực tiễn tốt nhất

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

Công cụ này hỗ trợ hương vị biểu thức chính quy nào?
Nó sử dụng công cụ RegExp tích hợp sẵn của JavaScript, hỗ trợ cú pháp tiêu chuẩn bao gồm tra cứu, tra cứu phía sau (trong các trình duyệt hiện đại), các nhóm chụp được đặt tên và thoát thuộc tính Unicode.
Tôi có thể thử nghiệm thay thế biểu thức chính quy không?
Đúng. Chuyển sang chế độ Thay thế để nhập mẫu thay thế. Bạn có thể sử dụng $1, $2, v.v. để thu thập các tham chiếu ngược của nhóm và $<name> cho các nhóm được đặt tên.
Tại sao biểu thức chính quy của tôi khớp ở đây khác với trong Python/PHP?
Các ngôn ngữ lập trình khác nhau có công cụ biểu thức chính quy hơi khác nhau. JavaScript không hỗ trợ bộ định lượng sở hữu hoặc một số tính năng dành riêng cho PCRE. Cú pháp cốt lõi (các lớp ký tự, bộ định lượng, nhóm) giống nhau giữa các ngôn ngữ.
Công cụ này có lưu mẫu biểu thức chính quy của tôi không?
Không. Không có gì được lưu hoặc truyền đi. Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Bạn có thể đánh dấu hoặc chia sẻ các mẫu bằng cách sao chép chuỗi biểu thức chính quy.
Làm cách nào để khớp một ký tự đặc biệt theo nghĩa đen?
Thoát khỏi nó bằng dấu gạch chéo ngược. Để khớp với một dấu chấm theo nghĩa đen: \. Để khớp với dấu gạch chéo ngược theo nghĩa đen: \\. Bên trong các lớp ký tự […], hầu hết các ký tự đặc biệt đều mất đi ý nghĩa.
Trình thử nghiệm có đang chạy trên máy chủ không?
Không. Việc biên dịch và so khớp mẫu diễn ra trong trình duyệt của bạn bằng cách sử dụng đối tượng RegExp gốc.
Tôi có thể kiểm tra mẫu cho các công cụ không phải JavaScript không?
Hầu hết. Đối với các mẫu đơn giản, các động cơ chính đều đồng ý. Đối với các tính năng nâng cao (nhìn phía sau, nhóm nguyên tử, bộ định lượng sở hữu, thoát thuộc tính Unicode), hãy xác nhận dựa trên tài liệu của công cụ đích.
Nó có xử lý đầu vào rất lớn không?
Lên đến vài megabyte hoạt động trơn tru. Đầu vào lớn hơn có thể làm chậm hoặc treo trình duyệt, đặc biệt với các mẫu có xu hướng quay lui.