0
我在C++工作中遇到了正则表达式问题。 最后,我想从匹配的组建立一个布尔矢量( “ITöIS BFAMPM” - > “ 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;
}
}
你使用什么编译器?它是什么版本?仍然有许多编译器使用缺乏完整的C++ 11支持,特别是当涉及到正则表达式功能时。 –
您的代码似乎[适用于我](http://rextester.com/GDT28322),完全如图所示。 –
我使用C++(简单)跑步者在https://c9.io/上运行它。到目前为止,我无法弄清楚更多细节。 – Achim