【发布时间】:2017-07-03 18:15:48
【问题描述】:
我在内存中有一些较大的(几 KB,可能最大 1 MB)字符串,它们包含结构化文本,如下例所示:
Def[prop=A, ... some more kv pairs]
SubDef[prop=B, ... some more kv pairs]
SubSubDef[prop=C, ... some more kv pairs]
... goes deeper ...
Def[prop=X, ... some more kv pairs]
SubDef[prop=Y, ... some more kv pairs]
SubSubDef[prop=Z, ... some more kv pairs]
... goes deeper ...
SubDef[prop=Y, ... some more kv pairs] <- yeah, SubDef can also be on level 1
SubSubDef[prop=Z, ... some more kv pairs]
我需要从文件中读取这些字符串,然后“查询”它们以获取数据。例如,查询将是:Def[].SubDef[].prop[],这意味着给我所有 prop 内的所有 SubDef,它们都在 Def 内。
我的想法是当我阅读文件结构时,我可以以某种方式索引表示结构的关键字。就像,我可以保留所有Def字符串,所有SubDef和所有SubSubDef的位置数组,所以当我需要搜索SubDef属性时,我可以直接跳转到这些关键字的偏移量整个字符串。
我想知道是否有一些通用的数据结构?基本上它是某种图表?不是真正的树,因为SubDef 也可以在级别 1。
为了澄清,该字符串中有很多关键字,但我只关心其中的一个子集。
是否有任何通用的数据结构来表示结构化字符串中关键字的偏移量?
【问题讨论】:
标签: string algorithm data-structures