将文本标记为类型,字符串对

时间:2011-04-25 13:52:40

标签: c++ regex boost tokenize

我正在寻找一种标记字符串并生成令牌和令牌类型列表的方法。在我浪费我的努力之前,我想知道助推是否已经可以做我想要的。

我想要一个带有签名的函数,基本上是这样的:

typedef pair<size_t,string> token;
void tokenize( string input, vector<regex> match, vector<token> & output );

input是要标记化的文本输入。 match是表示标记的所有正则表达式的列表。 output将成为所有匹配标记的列表以及match向量中匹配标记的索引。

我知道如何使用sregex_token_iterator,但我想以某种方式避免在所有令牌上进行重复匹配。也就是说,我可以生成一个令牌列表,但是它们缺少类型信息,我想获得该类型信息而不重新匹配每个令牌。

对于工具链和集成简单性,我更喜欢使用boost regex库而不是使用单独的工具(如ANTLR)。

1 个答案:

答案 0 :(得分:1)

您所描述的方案是完全 BoostSpiritQi。<{p>}的域。