c++ - 在 cpp 中按正则表达式拆分字符串 --special case

标签 c++ regex boost split

我想拆分这个表达式

A+ + B

通过中间的“+”,这样我就有了 A+和B在最后

请注意,A 之后的 + 是第一个标记的一部分,我不想拆分它

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <boost/algorithm/string/regex.hpp>
#include <vector>
using namespace std;

int main()
{
    string expression="A+ + B"; 
    vector <string> resultArray;
    boost::algorithm::split_regex( resultArray, expression,  boost::regex( " + " ));
    for (int i=0; i<resultArray.size();i++){
    cout <<resultArray[i]<< endl ;
    }
return 0;
}

最佳答案

+ 是正则表达式字符,您必须将其转义。不确定它在 C++ 中的表现如何,但通常在其他语言中它是使用像这样的反斜杠 (\) \+ 完成的,对于空格,您可以使用 \s

因此假设这将是您的拆分正则表达式:

\\s+\\+\\s+

意思是:任意数量的空格,然后是加号,然后是任意数量的空格。

关于c++ - 在 cpp 中按正则表达式拆分字符串 --special case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188391/

相关文章:

php - 从电话号码中删除特殊字符

javascript - 角色替换

javascript - 将字符串与正则表达式匹配返回 null

c++ - 使用 boost 生成适当数量的 token

c++ - boost 库中的超图支持

c++ - 使用 QTcpSocket 时出错

c++ - SFINAE 禁止临时调用时检测操作

c++ - 链接器如何知道要链接哪些库?

c++ - 错误 : variable has incomplete type 'introstructions' can't understand

c++ - 最低共同祖先( boost 图)