我在使用C ++工作时遇到了正则表达式。 最后,我想从匹配的组中构建一个布尔矢量(“ IT O IS BFAMPM” - >“ 11 0 11 000000" )。 要构建向量,我需要获得每个组的开始和长度。
该模式适用于regexr.com,我得到了所有的goups。但是我的代码返回一个空的结果集。
#include <iostream>
#include <vector>
#include <regex>
using namespace std;
string board = "ITOISBFAMPM"
"ACQUARTERDC"
"TWENTYFIVEX"
"HALFBTENFTO"
"PASTERUNINE"
"ONESIXTHREE"
"FOURFIVETWO"
"EIGHTELEVEN"
"SEVENTWELVE"
"TENSEOCLOCK"
"1234";
string pattern = ".*(IT).*(IS).*(HALF).*(PAST).*(TWELVE).*(123).*";
// string pattern = "(PAST)";
int main()
{
regex rgx(pattern);
smatch result;
regex_search(board, result, rgx);
cout << board << endl;
cout << pattern << endl;
cout << result.size();
for(size_t i=0; i<result.size(); ++i)
{
cout << result[i] << endl;
}
}
答案 0 :(得分:0)
如Igor Tandetnik所示,代码按原样运行。问题出在解释器上。