如何为修改文本的wiki文本子集实现解析器(在Python中),即:
*bold*, /italics/, _underline_
我正在将它转换为LaTeX,因此转换来自:
Hello, *world*! Let's /go/.
至:
Hello \textbf{world}! Let's \textit{go}.
虽然没有具体说明它是转换为LaTeX(特别是除了嵌套的情况,如"*bold/italics*whatami /"=>"textbf {bold\textit {italics} whatami}").
我查看了现有的标记库,但它们(a)不是我想要的维基语言,而且(b)似乎因这个问题而被压制.
我考虑过逆向工程Creoleparser,但我想知道在我付出努力之前别人有什么建议.
谢谢!
如果您的语言很小,正则表达式可能是最不痛苦的解决方案:
>>> import re >>> str = "Hello, *world*! Let's /go/." >>> str = re.sub(r"\*([^\*]*)\*", r"\textbf{\1}", str) >>> str = re.sub(r"/([^/]*)/", r"\textit{\1}", str) >>> str "Hello, \textbf{world}! Let's \textit{go}."