c++ - 使用 boost 或 regex 分割这条线
问题描述
我是 C++ 新手,我正在努力拆分这个字符串。希望创建一个以书为键的多图。名词和“-=>>”之后的定义将是一对,动词及其定义也是如此。这是我似乎无法正确拆分的字符串:
book|noun -=>> A set of pages.|verb -=>> To arrange something on a particular date.
bookable|adjective -=>> Can be ordered.
这是我正在尝试的代码。我发现这段代码没有正确加载多图,因为当我打印 parts[0] 时,两个名称都被放入同一个索引中。似乎正则表达式是一个更简单的解决方案,但在过去几个小时内我需要一些帮助。
while (getline(myfile, line)) {
string delimiters("|-=>>.");
vector<string> parts;
boost::split(parts, line, boost::is_any_of(delimiters));
name = parts[0];
partOfSpeech = parts[1];
definition = parts[2];
dictionary.emplace(make_pair(name, make_pair(partOfSpeech, definition)));
}
非常感谢任何指导或反馈
解决方案
首先将您的行拆分为|
. 第一个结果部分是你的名字。然后通过所有其他结果部分并将它们分成两半-=>>
。这将为您提供配对的前半部分(partOfSpeech)和后半部分(定义)。
推荐阅读
- facebook - 我应该使用哪个访问令牌?
- angular - ScatterPlot ng2-nvd3 大黑圈
- file - 是否可以将 VichUploader 集成到 CKEditor 中?
- angularjs - HyperLedger Composer:未处理的错误
- android - 使用什么库与 Android TV Remote 服务集成?
- cmake - CMake 3.11 链接 CUBLAS
- android - 在我的手机上运行应用程序时不显示垂直线视图
- c# - 用户输入确认
- php - 无法在 wordpress 主题上加载自定义 CSS
- scala - 如何找到 Spark RDD 的平均值?