来自正则表达式的布尔矢量

时间:2016-04-25 14:26:57

标签: c++ regex

我在使用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;
    }
}

1 个答案:

答案 0 :(得分:0)

如Igor Tandetnik所示,代码按原样运行。问题出在解释器上。