Thành thật mà nói, chức năng của bạn có thể "làm một việc", nhưng như bạn đã nói
Tôi có thể bắt đầu chia regex thành nhiều chức năng,
có nghĩa là mã reg ex của bạn làm rất nhiều thứ. Và tôi đoán nó có thể được chia thành các đơn vị nhỏ hơn, có thể kiểm tra riêng lẻ. Tuy nhiên, nếu đây là một ý tưởng tốt thì không dễ trả lời, (đặc biệt là không nhìn thấy mã thực tế). Và câu trả lời đúng có thể không phải là "có" hoặc "không", nhưng "chưa, nhưng lần sau bạn phải thay đổi một cái gì đó trong reg exp đó".
nhưng cảm giác như tôi thực sự sẽ mất khả năng đọc theo cách đó, vì tôi đang chuyển đổi ngôn ngữ một cách hiệu quả
Và đây là điểm cốt lõi - bạn có một đoạn mã được viết bằng ngôn ngữ reg ex . Ngôn ngữ này không cung cấp bất kỳ phương tiện trừu tượng tốt nào trong chính nó (và tôi không coi "các nhóm bắt giữ có tên" là một thay thế cho các chức năng). Vì vậy, việc tái cấu trúc "trong ngôn ngữ reg ex" là không thực sự có thể và việc đan xen các reg nhỏ hơn với ngôn ngữ máy chủ có thể không thực sự cải thiện khả năng đọc (ít nhất, bạn cảm thấy như vậy, nhưng bạn có nghi ngờ, nếu không bạn sẽ không đăng câu hỏi) . Vì vậy, đây là lời khuyên của tôi
hiển thị mã của bạn cho một nhà phát triển nâng cao khác (có thể trên /codereview// ) để đảm bảo người khác nghĩ về khả năng đọc theo cách bạn làm. Hãy cởi mở với ý tưởng rằng những người khác có thể không tìm thấy một reg reg 100 dòng có thể đọc được như bạn. Đôi khi khái niệm "nó không dễ bị phá vỡ thành những mảnh nhỏ hơn" có thể được khắc phục chỉ bằng một đôi mắt thứ hai.
quan sát khả năng tiến hóa thực tế - liệu reg exp sáng bóng của bạn vẫn trông rất tốt khi có yêu cầu mới và bạn phải thực hiện và kiểm tra chúng? Miễn là reg exp của bạn hoạt động, tôi sẽ không chạm vào nó, nhưng bất cứ khi nào phải thay đổi, tôi sẽ xem xét lại nếu thực sự nên đưa mọi thứ vào một khối lớn này - và (nghiêm túc!) Suy nghĩ lại nếu chia thành mảnh nhỏ hơn sẽ không phải là một lựa chọn tốt hơn.
quan sát khả năng bảo trì - bạn có thể gỡ lỗi reg exp một cách hiệu quả ở dạng hiện tại không? Đặc biệt là sau khi bạn phải thay đổi một cái gì đó, và bây giờ các xét nghiệm của bạn cho bạn biết rằng có điều gì đó không ổn, bạn có trình gỡ lỗi reg exp giúp bạn tìm ra nguyên nhân gốc không? Nếu việc sửa lỗi trở nên khó khăn, đó cũng sẽ là dịp để xem xét lại thiết kế của bạn.