Tôi muốn kiểm tra xem hai ngôn ngữ có một chuỗi chung hay không. Cả hai ngôn ngữ này là từ một tập hợp con các ngôn ngữ thông thường được mô tả dưới đây và tôi chỉ cần biết liệu có tồn tại một chuỗi trong cả hai ngôn ngữ, không tạo ra một chuỗi ví dụ hay không.Kiểm tra giao điểm của hai ngôn ngữ thông thường
Ngôn ngữ được xác định bởi một chuỗi glob giống như
/foo/**/bar/*.baz
nơi **
trận 0 hoặc các ký tự hơn, và *
trận đấu không hoặc nhiều ký tự mà không phải là /
, và tất cả các ký tự khác là chữ.
Bất kỳ ý tưởng nào?
cảm ơn, mike
EDIT:
tôi thực hiện một cái gì đó mà dường như thực hiện tốt, nhưng vẫn chưa thử một bằng chứng đúng đắn. Bạn có thể xem source và unit tests
Bạn sẽ sử dụng ngôn ngữ nào để thực hiện kiểm tra? Bạn có lẽ sẽ cần phải viết một chiếc giường thử nghiệm cho việc này. Nếu bạn có thể đăng một chiếc giường thử nghiệm khá hoàn chỉnh, nó sẽ giúp ích cho bạn. –
Điều này sẽ cần phải chạy trong JS. Dĩ nhiên tôi sẽ phải viết một testbed. Tôi đã tìm thấy một tập hợp con hữu ích để tôi có thể tính toán giao lộ hiệu quả bằng cách thực hiện một số thủ thuật. Tập hợp con hữu ích là một tập hợp con mà * và ** chỉ có thể xuất hiện lúc bắt đầu hoặc trực tiếp sau dấu /, và/không thể nằm cạnh nhau /. Điều đó có nghĩa là tôi không bao giờ phải lo lắng liệu * foo * có thể phù hợp với boo * baz hay không, nhưng không phải là một số vô lý vì tôi luôn có thể chuyển văn bản theo sau * hoặc ** thành kiểm tra hậu tố. –