Ba giải pháp mà bạn đã đề cập mỗi yêu cầu rất khác nhau.
Phân tích thủ công (tìm kiếm văn bản đơn giản) linh hoạt nhất và dễ thích nghi nhất, tuy nhiên, nó nhanh chóng trở thành nỗi đau thực sự trong ass khi phân tích cú pháp được yêu cầu phức tạp hơn.
Regex là nền tảng trung bình và có lẽ là cược tốt nhất của bạn tại đây. Chúng mạnh mẽ, nhưng linh hoạt như bạn có thể tự thêm logic hơn từ mã gọi regex khác nhau. Hạn chế chính sẽ là tốc độ ở đây.
Lex/Yacc thực sự chỉ thích nghi với các cú pháp rất phức tạp, có thể dự đoán được và thiếu rất nhiều tính linh hoạt sau khi biên dịch. Bạn không thể dễ dàng thay đổi phân tích cú pháp trong phân tích cú pháp giữa, thực ra bạn có thể nhưng nó quá nặng và bạn nên sử dụng regex tốt hơn.
Tôi biết đây là một câu trả lời câu trả lời, tất cả đều thực sự đáp ứng nhu cầu chính xác của bạn, nhưng từ những gì bạn nói, cá nhân tôi có thể đi với một túi regex.
Là một thay thế, như Vaibhav poionted ra, nếu bạn có những tình huống khác nhau mà có thể phát sinh và bạn cna dễ dàng phát hiện mà người ta đang đến, bạn có thể làm cho một hệ thống plugin cho phép lựa chọn các thuật toán đúng, và những thuật toán tất cả có thể rất khác nhau, một bằng cách sử dụng Lex/Yacc trong trường hợp khó khăn và một bằng cách sử dụng IndexOf và regex cho các trường hợp đơn giản hơn.
Tôi nghe nói Regex chịu trách nhiệm về việc bế bức tường Berlin. –
Họ thực sự nên ngừng sử dụng vũ khí hạt nhân trong các bộ phim thảm họa. – Coincoin
Regex: Nguyên nhân và giải pháp cho tất cả các vấn đề của cuộc sống. – MatthewKing