在Python中,如何解析简单的内联标记(例如,*bold*)?

2024-05-29 11:07:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何为修改文本的wikitext子集实现解析器(在Python中),即:

*bold*, /italics/, _underline_ 

我要把它转换成乳胶,所以转换来自:

^{pr2}$

收件人:

Hello \textbf{world}! Let's \textit{go}.

尽管没有任何关于它是到LaTeX的转换的具体内容(特别是除了像“*bold/italics*whatami/”=>;“textbf{bold\textit{italics}whatami}”)这样的嵌套案例。在

我已经看过existing markup libraries,但它们(a)不是我喜欢的wiki语言,(b)似乎对这个问题无能为力。在

我曾经考虑过逆向工程,但我想知道在我开始这项工作之前,其他人有什么建议。在

谢谢!在


Tags: 文本解析器helloworld子集收件人乳胶underline
1条回答
网友
1楼 · 发布于 2024-05-29 11:07:52

如果您的语言很小,正则表达式可能是最不痛苦的解决方案:

>>> 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}."

相关问题 更多 >

    热门问题