根据分度分割字符串
Split a string based on delimeter
我的分量表可以是除 [0-9] 之外的任何内容,[A-Z] 不区分
大小写因此,我想要一种基于动态分隔符拆分字符串的方法。我目前正在使用boost,但也对其他解决方案持开放态度。
我目前使用的代码涉及提升,是这样的:
vector<string> split_;
boost::split(split,line,boost::is_any_of("t"));
如何调整上面的代码,使其符合我的分隔符标准?有没有其他库可以帮助我完成此操作?有什么建议吗?
谓
词可以组合:
!(
boost::is_from_range('a','z') ||
boost::is_from_range('A','Z') ||
boost::is_from_range('0','9')
)
这种魔力是由于Boost Lambda库AFAIR。无论如何,您可以使用它:
住在科里鲁
#include <boost/algorithm/string.hpp>
#include <vector>
#include <iostream>
int main() {
std::vector<std::string> split_;
std::string line("one;two#three//four fivern"
"six");
boost::split(split_,line,
!(
boost::is_from_range('a','z') ||
boost::is_from_range('A','Z') ||
boost::is_from_range('0','9')
)
);
for(auto const& s : split_)
std::cout << s << "n";
}
考虑一个正则表达式拆分算法:
住在科里鲁
#include <boost/regex.hpp>
#include <vector>
#include <iostream>
int main()
{
std::string line("one;two#three//four fivern"
"six");
boost::regex re("[^a-zA-Z0-9]");
boost::sregex_token_iterator i(line.begin(), line.end(), re, -1), j;
std::vector<std::string> split_(i, j);
for(auto const& s : split_)
std::cout << s << "n";
}
相关文章:
- 如何在C++中从字符串中分割字符
- 由cin中的字符串中未捕获空白引起的分割错误
- 按分度分割字符串
- 分割故障:核心倾倒C 矢量对字符串:
- 我应该使用哪个函数来分割字符串
- 如何使用STL分割字符串
- C++如何使用多个分隔符分割字符串流
- 根据分度分割字符串
- 在空格上有选择地分割字符串
- 分割字符串作为邻接矩阵索引
- 用空格分割字符串,但只得到第一个单词
- c++中使用换行符分割字符串
- Std::locale按特定字符分割字符串而不忽略它
- 分割字符串并在不同的分隔符之前获取值
- 如果字符串包含多个 ,如何在每25个换行符( )上分割字符串
- Regex每两个字符分割字符串
- c++中左边的分割字符串
- 在c++中使用字符串(搜索字符串,分割字符串,cout<<字符串)
- 分割字符串
- 使用getline和while循环分割字符串