我打算在boost版本1.44中使用back-reference,但這對我不起作用。 這是我的代碼:如何在boost :: regex中使用back-reference
boost::regex_constants::syntax_option_type flags = boost::regex::extended;
std::string regx="(aaa)bb\1";
std::cout << "Expression: \"" << regx << "\"\n";
std::string str ="aaabbaaa";
boost::regex e(regx,flags);
if(boost::regex_match(text, what, e))//, boost::match_extra))
{
std::cout<<"found";
} else
{
std::cout<<"not found";
}
,這是我的輸出中:
Expression: "(aaa)bbb☺"
** not found **
Press any key to continue . . .
什麼,我缺少什麼? 當我嘗試std::string regx="(aaa)bb\\1"
程序墜毀在boost::regex e(regx,flags);
mybe我想念一些國旗?
什麼是正文?我嘗試'\\ 1',但在boost :: regex e(regx,flags)中崩潰; –
@herzl,我使用'\\ 1'而不是'\ 1',而不是整個單獨的正則表達式。 – Qtax
是的,我做了'std :: string regx =「(aaa)bb \\ 1」'並且崩潰了。 –