我想拆分这个表达式
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/