Tôi đang cố gắng tạo một hàm Python có thể mô tả bằng tiếng Anh đơn giản về cụm từ thông dụng và trả lại biểu thức chính quy cho người gọi.có cần một cách khai báo biểu thức chính quy hơn không? :)
Hiện tại tôi đang nghĩ về mô tả ở định dạng YAML. Vì vậy, chúng ta có thể lưu trữ mô tả dưới dạng biến chuỗi thô, được chuyển sang hàm khác và đầu ra của hàm đó sau đó được truyền cho mô-đun 'tái'. Sau đây là một ví dụ khá đơn giản:
# a(b|c)d+e*
re1 = """
- literal: 'a'
- one_of: 'b,c'
- one_or_more_of: 'd'
- zero_or_more_of: 'e'
"""
myre = re.compile(getRegex(re1))
myre.search(...)
, vv
Có ai nghĩ rằng một cái gì đó thuộc loại này sẽ được sử dụng rộng rãi hơn? Bạn có biết các gói hiện có có thể thực hiện được không? Những giới hạn mà bạn thấy trong cách tiếp cận này là gì? Có ai nghĩ rằng, có chuỗi khai báo trong mã, sẽ làm cho nó dễ bảo trì hơn?
JSON hoặc XML có thể? DTD hoặc XSD cũng có thể decribe một cấu trúc dữ liệu tốt. – codymanix
Vì vậy, thay vì một regex phức tạp tham gia một dòng toàn bộ, nó sẽ mất một trang toàn bộ :) –
Những người biết biểu thức thông thường được thoải mái với nó, nhưng để mọi người khác nó trông giống như bảng chữ cái đã ném lên. Đây có thể là một vấn đề, nhưng tôi không chắc chắn. Sau khi tất cả, bạn có thể nói điều tương tự của ngôn ngữ lập trình cho những người chương trình vs perople những người không. Nó có thể là tốt đẹp để làm điều đó với các đối tượng và chức năng instad của dây, nhưng tôi không chắc chắn những gì cách tốt nhất để thực hiện đó sẽ là. 1 cho sự đổi mới tất cả như nhau. – psicopoo