Trình kiểm tra Regex

/ /

Gõ một biểu thức chính quy, dán văn bản để kiểm tra, và trình kiểm tra chạy mẫu rồi liệt kê mọi kết quả khớp tìm được. Mỗi kết quả cho thấy nơi kết quả khớp bắt đầu và nội dung của từng nhóm bắt, để bạn thấy chính xác mẫu đã bắt được gì. Bật các cờ không phân biệt hoa thường, đa dòng và dotall để thay đổi cách mẫu hoạt động.

Cách kiểm tra một regex

  1. 1

    Nhập mẫu của bạn

    Gõ biểu thức không kèm dấu phân cách; trình kiểm tra tự bao nó trong `/ /` cho bạn. Một mẫu không hợp lệ hiển thị thông báo lỗi rõ ràng thay vì thất bại âm thầm.

  2. 2

    Chọn các cờ

    Bật `i` (không phân biệt hoa thường), `m` (đa dòng) hoặc `s` (dotall) để khớp theo cách bạn cần.

  3. 3

    Dán văn bản kiểm tra

    Thêm văn bản bạn muốn tìm. Trình kiểm tra duyệt toàn bộ và tìm mọi kết quả khớp, không chỉ kết quả đầu tiên.

  4. 4

    Xem xét các kết quả khớp

    Mỗi kết quả khớp cho thấy vị trí (offset) của nó trong văn bản, kết quả khớp đầy đủ và từng nhóm bắt được đánh số.

Trình kiểm tra cho bạn thấy gì

Chạy một mẫu trong đầu, hoặc với một lệnh grep nhanh, cho bạn biết liệu có gì khớp. Trình kiểm tra còn cho thấy:

  • Mọi kết quả khớp, cùng vị trí của nó. Nó luôn tìm trong toàn bộ văn bản và báo cáo mỗi kết quả khớp kèm offset ký tự nơi nó bắt đầu.
  • Nhóm nào bắt được gì. Mỗi kết quả khớp được tách thành kết quả khớp đầy đủ và các nhóm bắt được đánh số, để bạn xác nhận một (...) đã bắt đúng phần bạn mong đợi.
  • Các cờ thay đổi điều gì. Bật i, m hoặc s rồi kiểm tra lại để thấy việc khớp không phân biệt hoa thường, đa dòng hay dotall thay đổi kết quả ra sao.

Các cờ, nói ngắn gọn

Cờ Tên Thay đổi điều gì
i Không phân biệt hoa thường A cũng khớp a, và ngược lại
m Đa dòng ^$ khớp ở đầu và cuối mỗi dòng, không chỉ toàn bộ văn bản
s Dotall . cũng khớp các ký tự xuống dòng

Việc khớp luôn là toàn cục: trình kiểm tra trả về mọi kết quả khớp trong văn bản, nên không có cờ “global” riêng cần đặt. Các mẫu chạy trên engine PCRE với hỗ trợ Unicode, nên các lớp như \w\d hoạt động nhất quán trên văn bản quốc tế.

Các vấn đề regex thường gặp mà công cụ này giúp phát hiện

Triệu chứng Nguyên nhân thường gặp
Một kết quả khớp khổng lồ bao trùm mọi thứ .* tham lam; dùng .*? hoặc một lớp phủ định như [^"]*
^ hoặc $ chỉ khớp một lần Thiếu cờ m trên văn bản nhiều dòng
. dừng ở các dấu xuống dòng Thiếu cờ s
Nhóm bắt theo thứ tự bất ngờ ( lồng nhau làm lệch số thứ tự nhóm; đếm chúng từ trái sang phải
Một mẫu chạy chậm * hoặc + lồng nhau trên các lựa chọn chồng lấn gây quay lui nặng

Mẹo cho các mẫu nhanh và an toàn hơn

  • Neo bằng ^ khi kết quả khớp bắt đầu từ đầu, để engine không quét toàn bộ chuỗi.
  • Ưu tiên một lớp ký tự ([abc]) hơn phép thay thế (a|b|c); các lớp nhanh hơn trong mọi engine lớn.
  • Thay .* tham lam bằng một lớp phủ định như [^"]* khi bạn biết ký tự kết thúc, để không có quay lui.

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

Nó chạy mẫu của bạn bằng PCRE, engine tích hợp trong PHP, với chế độ Unicode bật. Cú pháp riêng của PCRE, như \d, \b và lookaround, hoạt động như mong đợi. Nếu bạn sẽ triển khai mẫu trong JavaScript, Python hay ngôn ngữ khác, hãy kiểm tra các khác biệt cú pháp nhỏ trước khi phát hành.

Mọi kết quả khớp. Trình kiểm tra luôn tìm trong toàn bộ văn bản, nên không có cờ “global” riêng cần đặt. Mỗi kết quả khớp được liệt kê kèm vị trí của nó trong văn bản.

Có. Mỗi kết quả khớp được tách thành kết quả khớp đầy đủ và từng nhóm bắt được đánh số, để bạn xác nhận mỗi (...) đã bắt phần nào của văn bản.

i khiến việc khớp không phân biệt hoa thường, m khiến ^$ khớp ở mỗi ranh giới dòng, và s cho phép . khớp các ký tự xuống dòng. Bật hoặc tắt chúng rồi kiểm tra lại để so sánh kết quả.

Trình kiểm tra hiển thị một thông báo lỗi rõ ràng mô tả vấn đề, chẳng hạn một dấu ngoặc không đóng hay một nhóm chưa hoàn tất, thay vì âm thầm trả về không có kết quả khớp.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác