【发布时间】:2019-09-18 01:11:46
【问题描述】:
假设我有一个字符串 s = SU 3180 和(CMG 3200 或 SU 3210)。我需要把这个字符串拆分成这样的树形图:
X
/ \
SU 3180 ()
/ - \
CMG 3200 SU 3210
主要目标是显示与和/或拆分的差异,如图所示。例如,我在拆分之间用连字符显示了 or 拆分。我不知道我应该如何进行。欢迎任何想法!
【问题讨论】:
-
你有很多问题要解决:你需要处理括号、优先顺序、递归或迭代地解析长字符串,最后打印一个布局合理的表示 - 这有点多在一个问题中提出问题,而不尝试自己解决。请提供您自己尝试过的代码并从那里询问。
-
您需要为此编写一个解析器,这可能是您的任务的重点。正则表达式不适合这项工作。
-
我同意 Grismar 的观点,我们需要看看你已经拥有什么,因为这是一个非常复杂的问题,而且这样更容易提供帮助。话虽如此,您可以查看像 Lark 这样的语法解析器。
-
@TimBiegeleisen 大多数解析器使用正则表达式进行标记。
标签: python regex split tree nlp