获取令牌之间的子串

时间:2012-01-15 17:12:58

标签: c++ parsing stl

您能否解释如何获取代币[;之间的子字符串

原始字符串:

a [
    b [
        text1;
        text2;
        c [
            text3;
            text4;
        ]
    ]
]

我想要的:

text1;
text2;
text3;
text4;

1 个答案:

答案 0 :(得分:2)

快速方法是从后面搜索';',然后从该位置开始搜索'[',并将结果字符串拆分为分号。重复相同的过程,直到找不到分号';'

更好的方法是使用单个规则编写一个简单的recursive descent parser:如果源中存在错误,检测将更加可靠。