通过正则表达式拆分字符串会切断结果的第一个字母
Splitting a string by regex cuts away the first letter of result
考虑代码:
regex boundary{ "\s*\b\s*" };
string test = "foo bart baz-floop";
auto begin = sregex_token_iterator(test.begin(), test.end(), boundary, -1);
for (auto i = begin; i != sregex_token_iterator{}; i++) {
cout << *i << endl;
}
该代码改编自其他答案,旨在通过正则表达式拆分字符串。调用此函数(在 VC++ 16.2.3 上(的结果是:
呜呜��
阿
亚利桑那州
圈
如何更正代码,以便不删除匹配的第一个字母?我无法更改正则表达式本身。此外,Java 中的类似代码似乎根据我的解释工作:
Pattern boundary = Pattern.compile("\s*\b\s*");
String test = "foo bart baz-floop";
String[] results = boundary.split(test);
for (String result : results) {
System.out.println(result);
}
这是标准库中的一个错误。固定在这里。
相关文章:
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 使用具有默认参数的函数模板进行 decltype 会使结果混乱(一个有趣的问题或 gcc 的错误)
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 是否可以从另一个类对象调用一个类函数而不继承第一个类
- 无法使我的第一个Windows OpenGL窗口抬起并运行
- 将参数初始化为构造函数,而不是第一个