2

可能重复:
如何在 C++ 中将数字转换为字符串,反之亦然

我应该如何将 boost::regex 匹配结果转换为其他格式,例如带有以下代码的整数?

string s = "abc123";
boost::regex expr("(\\s+)(\\d+)");
boost::smatch match;
if(boost::regex_search(s, match, expr)) {
  string text(match[0]);
  // code to convert match[1] to integer
}
4

1 回答 1

2

我确定你想拥有

string text(match[1]);
// convert match[2] to integer

相反,match[0]与整个匹配的事物一样(此处为 abc123),因此子匹配索引从 1 开始。

至于转换成整数部分,lexical_cast用起来很方便:

string s = "abc123";
boost::regex expr("(\\s+)(\\d+)");
boost::smatch match;
if(boost::regex_search(s, match, expr)) {
  string text(match[1]);
  int num = boost::lexical_cast<int>(match[2]);
}
于 2012-10-02T22:57:48.440 回答