Kiểm Thử Biểu Thức Chính Quy (RegEx)

Kiểm tra kết quả khớp RegEx theo thời gian thực.

Công cụ này chạy hoàn toàn trên trình duyệt. Dữ liệu bạn nhập không rời khỏi thiết bị.

Advertisement

Công cụ này kiểm thử biểu thức chính quy theo thời gian thực, tô sáng mọi đoạn khớp trong văn bản mẫu và liệt kê các nhóm bắt được (capture group). Bạn dùng khi viết regex để kiểm tra email, số điện thoại, mã đơn hàng, hoặc để bóc tách dữ liệu từ log mà không phải chạy đi chạy lại một đoạn script.

Cần nhớ regex trong JavaScript chạy theo động cơ backtracking, nên các mẫu lồng nhau kiểu (a+)+ có thể gây bùng nổ thời gian xử lý và treo cả tab khi gặp chuỗi dài. Ngoài ra ký tự có ý nghĩa đặc biệt như dấu chấm, dấu sao, ngoặc đơn phải được thoát bằng dấu gạch chéo ngược nếu bạn muốn khớp đúng ký tự đó.

Cách sử dụng

  1. Nhập biểu thức chính quy vào ô pattern.
  2. Bật cờ cần dùng như i cho không phân biệt hoa thường, g cho toàn bộ, m cho nhiều dòng.
  3. Dán văn bản mẫu vào ô bên dưới để xem kết quả khớp.
  4. Kiểm tra danh sách nhóm bắt được và thử lại với các trường hợp biên.

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

Vì sao regex của tôi treo trình duyệt?

Nguyên nhân thường là backtracking bùng nổ từ các nhóm lồng nhau hoặc lặp vô hạn như (a+)+ hay (.*)*. Cách khắc phục là viết lại theo dạng chặt hơn, ví dụ dùng [^,]+ thay cho (.*)+, hoặc giới hạn độ dài chuỗi đầu vào.

Cờ g và cờ i khác nhau thế nào?

Cờ g (global) khiến regex tìm tất cả kết quả khớp thay vì dừng ở kết quả đầu tiên. Cờ i (ignore case) bỏ qua phân biệt chữ hoa chữ thường. Hai cờ có thể bật cùng lúc, và thường phối hợp với cờ m cho văn bản nhiều dòng.

Regex viết ở đây có dùng được trong Python hoặc PHP không?

Phần lớn cú pháp cơ bản giống nhau, nhưng vẫn có khác biệt. Python dùng (?P<tên>...) cho nhóm có tên trong khi JavaScript dùng (?<tên>...), và các ký tự \d, \w nhìn chung tương thích nhưng có thể khác ở chế độ Unicode.

Công cụ liên quan