Xem dữ liệu đầu vào và đầu ra được cập nhật tại Chỉnh sửa-1.Tôi làm cách nào để phân tích cú pháp văn bản đã đánh dấu để xử lý thêm?
Những gì tôi đang cố gắng để thực hiện được chuyển
+ 1 + 1.1 + 1.1.1 - 1.1.1.1 - 1.1.1.2 + 1.2 - 1.2.1 - 1.2.2 - 1.3 + 2 - 3
thành một cấu trúc dữ liệu python như
[{'1': [{'1.1': {'1.1.1': ['1.1.1.1', '1.1.1.2']}, '1.2': ['1.2.1', '1.2.2']}, '1.3'], '2': {}}, ['3',]]
Tôi đã nhìn vào nhiều ngôn ngữ đánh dấu wiki khác nhau, markdown, văn bản cơ cấu lại, nhưng tất cả chúng đều cực kỳ phức tạp đối với tôi để hiểu cách nó hoạt động vì chúng phải bao gồm một số lượng lớn các thẻ và cú pháp (tôi sẽ chỉ cần danh sách "phần" của hầu hết chúng nhưng chuyển thành python thay vì html của khóa học.)
Tôi cũng đã xem xét mã thông báo, từ khóa và trình phân tích cú pháp nhưng lại phức tạp hơn nhiều so với nhu cầu của tôi và tôi có thể hiểu được.
Tôi không biết bắt đầu từ đâu và sẽ đánh giá cao bất kỳ sự trợ giúp nào có thể về chủ đề này. Cảm ơn
Sửa-1: Có nhân vật ở phần đầu của những vấn đề dòng, từ sản lượng yêu cầu từ trước và bây giờ nó có thể được nhìn thấy rằng *
biểu thị một nút gốc với trẻ em, các + có con và - không có con (gốc hoặc cách khác) và chỉ là thông tin bổ sung liên quan đến nút đó. Các *
là không quan trọng và có thể được trao đổi với + (tôi có thể nhận tình trạng gốc cách khác.)
Do đó yêu cầu mới sẽ được sử dụng chỉ *
để biểu thị một nút có hoặc không có trẻ em và - không thể có con. Tôi cũng đã thay đổi nó để khóa không phải là văn bản sau *
vì điều đó sẽ không có nghi ngờ thay đổi sau đó thành tiêu đề thực tế.
Ví dụ
* 1 * 1.1 * 1.2 - Note for 1.2 * 2 * 3 - Note for root
sẽ cung cấp cho
[{'title': '1', 'children': [{'title': '1.1', 'children': []}, {'title': '1.2', 'children': []}]}, {'title': '2', 'children': [], 'notes': ['Note for 1.2', ]}, {'title': '3', 'children': []}, 'Note for root']
Hoặc nếu bạn có ý tưởng khác để đại diện cho phác thảo trong python sau đó mang nó về phía trước.
Done và thực hiện. Tôi đã chỉnh sửa cả hai thứ đó. – Rigsby