上述两种形式最复杂,功能也最复杂。其作用是构造一个迭代器对象i,并使用i来枚举match_result类型的所有匹配。这些匹配应该全部包含在序列[first,last]中。若没有相关的匹配,并且(flags&regex_constant::format_no_copy)的值为false,则调用copy(first,last,out)。若有任意匹配被发现,对于每个匹配而言,如果满足条件!(flags&regex_constants::format_no_copy),则调用std::copy(m.prefix().first,m.prefix().second,out);对于第一种形式,调用m.format(out,fmt,flags);对于第二种函数形式,调用m.format(out,fmt,fmt+char_traits<chart>::length(fmt),flags)。
最终,如果该匹配被发现,并且!(flags&regex_constants::format_no_copy)为true,调用copy(last_m.suffix().first,last_m.suffix().second,out),该处last_m是最后一个匹配的备份。如果flags&regex_constants::format_first_only是非零数值,仅仅第一个匹配被替换。
上述两种形式的作用是构造一个空字符串,并调用regex_replace(back_inserter(result)、s.begin()和s.end()、e、fmt和flags)进行相应的替换工作。
上述这两种形式的作用是构造一个空的string,并调用regex_replace(back_inserter(rusult),s,s+char_traits<charT>::length)。
函数的返回值是一个字符串对象,该字符串代表结果序列。(www.xing528.com)
参数fmt的使用方法见表17-6。参数flags的使用方法见表17-9。
表17-9 flags的使用方法
函数模板regex_replace()的使用方法参见例17-9。
例17-9
例17-9的执行效果如图17-7所示。
图17-7 例17-9的执行效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。