Có công cụ nào có biểu thức chính quy cụ thể và trả về trường hợp xấu nhất về số lượng hoạt động cần thiết cho một số ký tự nhất định không?Phân tích trường hợp xấu nhất cho biểu thức chính quy
Vì vậy, ví dụ: được đưa ra (f|a)oo.*[ ]baz
, số bước mà động cơ có thể đi qua để khớp với 100 ký tự?
Tôi cũng sẽ quan tâm nếu có một công cụ có thể lấy một loạt các mẫu văn bản và hiển thị các hoạt động trung bình cho mỗi lần chạy.
Tôi nhận thấy điều này phụ thuộc rất nhiều vào công cụ được sử dụng và triển khai - nhưng tôi không biết gì về mức độ phổ biến của nó. Vì vậy, nếu nó là phổ biến cho nhiều ngôn ngữ (làm cho câu hỏi của tôi quá mơ hồ) Tôi sẽ đặc biệt quan tâm đến Perl và Python.
Câu hỏi hay! Rõ ràng nó sẽ phụ thuộc vào regex. Nó nổi tiếng là các regex thuần túy (thậm chí giống như ví dụ '(x + x +) + y' được tham chiếu bên dưới) thừa nhận một automata máy trạng thái thuần túy thuần túy, nhưng các thư viện regex thông thường thực sự thực hiện những người có backtracking, phần lớn để hỗ trợ những thứ như ngữ cảnh. Một công cụ như bạn mô tả sẽ là tuyệt vời tại bắt http://en.wikipedia.org/wiki/Regular_expression_Denial_of_Service_-_ReDoS –