최근에 HTML을 생성하는 데 사용되는 파일이 주어졌습니다. 메뉴 템플릿에는 정렬 및 시간 제약으로 인해 파이썬이 있습니다. 프로토 타입 작동하지만 무차별 적이며이 경우에만 작동합니다.flattly 작성한 중첩 텍스트 템플릿을 N 레벨 용 중첩 데이터 구조로 구문 분석
더 나은 방법이 있어야하지만 내 Google 검색이 도움이되지 않았다는 것을 알고 있습니다. 다음은 템플릿 파일 내가이 구조에이 무력 관리했습니다
[text](link)
[text](link)
>[text](link)
>[text](link)
>>[text](link)
>>[text](link)
>>[text](link)
[text](link)
>[text](link)
처럼 (hopefull이 누락되지] 또는 [곳 XD)
[
[ [text](link), [] ],
[ [text](link), [
[ [text](link), [] ],
[ [text](link), [
[ [text](link), [] ],
[ [text](link), [] ],
[ [text](link), [] ],
] ],
],
[ [text](link), [
[ [text](link), [] ],
] ],
]
하지만 기본적으로 이런 짓을 한거야 루트, 부모를 추적하고 행의 시작 부분에서 "", ">"또는 ">>"을 확인한 다음 ""에 대해 루트에 [text, []]를 추가하고 ">" ">>"에 대한 루트 [parent]. 문제는 N *>으로 해결하고 진행 방법이나 검색 할 항목을 모르겠습니다. 파이썬에서 이의 대답은 어떤 언어로 할 수있다, 파이썬은 빠른 그래서이 작품을 함께
menu = []
f = open('template_file', 'r')
root = 0
parent = 0
for line in f:
line = line.strip()
m = re.match('(.*)(\[.*)', line)
if m:
prefix = m.group(1)
link = m.group(2)
if prefix == "":
menu.append([link, []])
root += 1
parent = 0
elif prefix == ">":
menu[root - 1][1].append([link, []])
parent += 1
elif prefix == ">>":
menu[root - 1][1][parent - 1][1].append([link, []])
을 던져 이었지만, 내가 찾을 수 있도록 검색해야 모르겠어요 끔찍 이러한 템플릿 파일을 이러한 구조로 파싱하는 더 좋은 방법은 필요한 HTML을 추출하는 것입니다. 나는 문제를 더 줄이기를 원한다.
매우 감사드립니다.
(file.txt를 위와 같이 템플릿 파일입니다). – Melignus