string str = "hello world!\r\naa=`xxx_1`\r\nhello world!";
sregex rx = sregex::compile(".+=`(.+)_1`");
smatch what;
if( regex_match( str, what, rx ) )
{
std::cout << what[1] << '\n';
}
这个不行,我用boost.xpressive而不是boost.regex,如何匹配多行文字?
答案 0 :(得分:4)
我已经解决了这个问题。
如果正则表达式从头到尾匹配整个输入,则regex_match()算法将仅报告成功。如果正则表达式只匹配输入的一部分,则regex_match()将返回false。如果要搜索字符串以查找正则表达式匹配的子字符串,请使用regex_search()算法。