1

我正在使用 Boost.Regex 来实现这样的目标:搜索“|” 然后取“|”的左边部分 并将其放入一个字符串,与右侧部分相同:

string s1;
string s2;
who | sort

在此之后 s1 应该是“谁”,而 s2 应该是“排序”。
如果我没记错的话,它在 Python 中是可行的,我如何在 Boost 中使用正则表达式来做到这一点?

谢谢你。

4

2 回答 2

2
#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("|"));

在 C++ 中拆分字符串?

于 2011-04-18T12:09:57.403 回答
2

这是简短的示例:

#include <iostream>
#include <boost/regex.hpp>

int main()
{
  // expression
  boost::regex exrp( "(.*)\\|(.*)" );
  boost::match_results<std::string::const_iterator> what;
  // input
  std::wstring input = "who | sort";
  // search
  if( regex_search( input,  what, exrp ) ) {
    // found
    std::string s1( what[1].first, what[1].second );
    std::string s2( what[2].first, what[2].second );
  }

  return 0;
}

此外,您可能想查看Boost.Tokenizer

于 2011-04-18T12:10:10.857 回答