tokens = [
('text', 'This '),
('enter', 'code'),
('text', "example")
('exit', None),
('text', ' is '),
('enter', 'a'),
('text', "neither"),
('href', "/defn/neither"),
('exit', None),
('text', ' complete'),
('enter', 'footnote'),
('id', 1),
('exit', None),
('text', ' '),
('enter', 'strong'),
('text', 'nor'),
('exit', None),
('text', ' trite, '),
('enter', 'strong'),
('text', 'though '),
('enter', 'em'),
('text', 'simple'),
('exit', None),
('exit', None),
('text', '.')
]
척 :
text = 'This @[email protected] is "neither":/defn/neither complete[1] *nor* trite, *though _simple_*.'
내가 정규 표현식의 사용을 피하면서 다음과 같은 것이 같은 것을 제작해서를 위는 발전기에 의해 생산되고있다. 내 current implementation 코드는 약간 끔찍하지만 쉽게 링크를 지원하도록 확장되지는 않지만 작동합니다.
도움을 주시면 감사하겠습니다.
원하는 구문을 복잡한 중첩 목록 구조에서 단순한 튜플 스트림으로 변경하려면 업데이트되었습니다. 우리 인간을위한 들여 쓰기. 링크 텍스트 내에서 서식을 지정할 수 있습니다. 여기에 내가 찾고있는 렉싱 결과를 생성하지만 여전히 링크 또는 각주를 처리하지 않는 a simple parser입니다.
흥미 롭습니다. regexes를 사용하지 않으려는 이유는 무엇입니까? – NullUserException
['shlex'] (http://docs.python.org/library/shlex.html)이 도움을 줄 수 있으며 즉시 사용할 수 있습니다 – JBernardo
@ NullUserException 정규 표현식은 현재 솔루션보다 느린 순서로 복잡해집니다 중첩 된 규칙 집합을 처리하기 시작할 때. – amcgregor