3
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';
}

this can't work, i use boost.xpressive not boost.regex, how to match multi-line text?

4

1 回答 1

5

我已经解决了这个问题。

http://boost-sandbox.sourceforge.net/libs/xpressive/doc/html/boost_xpressive/user_s_guide/matching_and_searching.html

regex_match() 算法仅在正则表达式从头到尾匹配整个输入时才报告成功。如果正则表达式仅匹配输入的一部分,则 regex_match() 将返回 false。如果要在字符串中搜索正则表达式匹配的子字符串,请使用 regex_search() 算法。

于 2012-06-18T07:32:27.887 回答