[英]Boost Regular Expression: Getting the Named Group
如何使用Boost正则表达式获取与模式匹配对应的组的名称?
以下将匹配的表达式输出到给定的模式。 但是如何获得相应的命名组呢?
boost::regex pattern("(?<alpha>[0-9]*\\.?[0-9]+)|(?<beta>[a-zA-Z_]+)");
string s = "67.2 x 7 I am";
string::const_iterator start = s.begin();
string::const_iterator end = s.end();
boost::sregex_token_iterator i(start, end, pattern);
boost::sregex_token_iterator j;
for ( ;i != j; ++i)
{
cout << *i << endl;
// '67.2' and '7' belongs to "alpha"
// 'x', 'I', 'am' belongs to "beta"
}
你可以从match_result
获得它它适用于xpressive ,但同样适用于Boost.Regex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.