【发布时间】:2010-09-20 18:30:37
【问题描述】:
我正在寻找一种干净的 C++ 方法来解析包含在 ${} 中包装的表达式的字符串,并从以编程方式计算的表达式构建结果字符串。
示例:如果我实施程序让“user”评估为“foo”等,“Hi ${user} from ${host}”将被评估为“Hi foo from bar”等。
我正在考虑的当前方法包括一个状态机,它一次从字符串中读取一个字符,并在到达“}”后评估表达式。有什么提示或其他建议吗?
注意:boost:: 是最受欢迎的! :-)
更新感谢前三个建议!不幸的是,我的例子太简单了!我需要能够检查 ${} 中的内容,所以这不是简单的搜索和替换。也许它会说 ${uppercase:foo} 然后我必须使用“foo”作为哈希映射中的键,然后将其转换为大写,但是在编写上面的原始问题时,我试图避免 ${} 的内部细节... :-)
【问题讨论】:
标签: c++ parsing boost string expression