【发布时间】:2012-11-04 13:49:42
【问题描述】:
我正在使用
boost::split(strs, r_strCommandLine, boost::is_any_of("\t "));
将字符串吐出到标记中以解析简单的脚本。到目前为止,一切都很好。但是,对于以下字符串
command_name first_argument "Second argument which is a quoted string."
我希望我的代币是
strs[0] = command_name
strs[1] = first_argument
strs[2] = "Second argument which is a quoted string."
当然,我可以在标记的开头和结尾搜索引号字符,并使用“”合并以引号开头的标记和以引号结尾的标记之间的标记,以重新创建带引号的字符串,但是我想知道是否有更有效/更优雅的方式来做到这一点。有什么想法吗?
【问题讨论】:
-
欢迎来到 Stack Overflow!我对你的问题感到困惑。这个问题的第一段是否与问题的其余部分有任何关系?
-
boost::tokenizer可能有您需要的功能。 -
拆分可能过于简单,因为您确实需要某种形式的解析。
-
@Yakk 是的。要拆分的字符串看起来像 string("command_name first_argument \"Second argument which is aquoted string.\"" )
-
@Robᵩ 不,这很奇怪。第一段是我昨天在另一个帖子上发表的评论。如果我编辑这个当前问题,我根本看不到第一段,所以我无法删除它......奇怪的行为。