【发布时间】:2022-11-19 07:03:58
【问题描述】:
这是我正在处理的事情:
- 我们有一个机器数据库,它们的零件列表是使用字符串指定的。例如,一台机器可能用字符串 &XXX&YYY-ZZZ 指定,这意味着该机器包含部件 XXX 和 YYY 而不是 ZZZ。
- 我们使用 &XXX 来指定某个部件存在于机器中,使用 -XXX 来指定某个部件不存在于机器中。
- 也有可能某个部件未列出(即未指定它是否存在于机器中)。例如,我可能只有 &XXX&YYY(未指定 ZZZ)。
- 此外,代码可以按任何顺序排列,例如我可能有 &XXX&YYY-ZZZ 或 &XXX-ZZZ&YYY。
为了搜索机器,我得到一个这样的字符串:'&XXX-YYY/&YYY&ZZZ'('/' 是一个 OR 运算符),意思是“我想找到所有机器 a) 包含 XXX 但不包含 YYY , 或 b) 同时包含 YYY 和 ZZZ。
我在基于变量排序解析字符串时遇到问题,部分可能不会显示,以及 / 运算符的处理。请注意,我们使用 Microsoft 365。
寻找一些建议!
当我搜索“&XXX-YYY/&YYY&ZZZ”时,我应该返回以下机器:
| Machine | Result |
|---|---|
| &XXX-YYY&ZZZ | True (because XXX exists and YYY does not exist) |
| &XXX-YYY-ZZZ | True (because XXX exists and YYY does not exist) |
| &XXX&YYY&ZZZ | True (because YYY exists and ZZZ exists) |
| &XXX&ZZZ | False (because YYY is specified in the search, but this machine doesn't specify it) |
| &ZZZ&YYY | True (showing that parts can be in any order) |
【问题讨论】:
-
看起来你想在 Excel 中定义一个解析器,但它不是为此目的,有更适合构建这样一个解析器的工具/语言。如果是简单的事情是可以做到的。例如,我们可以考虑的token只有
XXX、YYY、ZZZ,如果没有,有没有什么模式可以识别它们?
标签: arrays excel string formula excel-365