Regex_iterator方法需要输入一个正则表达式,以及一个用于替换匹配的字符串的格式化字符串;这个格式化的字符串可以通过表的转义序列引用匹配子字符串的部分内容;

转义序列

$n

替换第n个捕获的字符串,$1表示第一个捕获组,$2表示第二个捕获组

$&

匹配整个正则表达式的字符串,等于$0

$’

在输入字符串中,在匹配正则表达式的字符串左侧部分

$`

在输入字符串中,在匹配正则表达式的字符串右侧部分

$$

美元

原型:std::string regex_replace(inputSequence,Regex,FormateString,[, Flags]);

inputSequence可以是C风格的字符串,

Regex是正则表达式

FormateString是需要替换掉匹配的子字符串的格式化字符串;

Flags是可选参数

在第四个参数可以为以下;

Flag(标志)

Expressions(说明)

Format_default

默认是替换模式的所有实例,并将所有不匹配的内容复制到结果中;

Format_no_copy

默认是替换模式的所有实例,并将所有不匹配的内容不复制到结果中;

Formate_first_only

只替换模式里的第一个实例

在没有第四个参数的时候(也就是第四个参数默认的)实例:

std::regex r("<hl>(.*)</hl><pl>(.*)</pl>");
const std::string formate = "H1 = $1 and P1 = $2";
std::string str;
while(true)
{
if(!std::getline(std::cin,str) || str == "q")
{
break;
}else
{
std::string result = std::regex_replace(str,r,formate);
std::cout << result << std::endl;
}
}

输入:

<body><hl>Header</hl><pl>Some text</pl></body>

输出:

<body>H1 = Header and P1 = Some text</body>

当我们写入第四个参数的时候:

    std::regex r("<hl>(.*)</hl><pl>(.*)</pl>");
const std::string formate = "H1 = $1 and P1 = $2";
std::string str;
while(true)
{
if(!std::getline(std::cin,str) || str == "q")
{
break;
}else
{
std::string result = std::regex_replace(str,r,formate,std::regex_constants::format_no_copy);
std::cout << result << std::endl;
} }
return ;

输入:

<body><hl>Header</hl><pl>Some text</pl></body>

输出:

H1 = Header and P1 = Some text

这就是两者的差别;

regex_replace的更多相关文章

  1. C++中的也能使用正则表达式

    正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...

  2. c++11 正则表达式基本使用

    c++ 11 正则表达式 常用的方法 regex_match regex_search regex_replace 等. regex_match 要求正则表达式必须与模式串完全匹配,例如: strin ...

  3. 正则表达式python和C++对比

    pattern格式(基本通用): pattern格式 符号 说明 ^ 匹配开头 $ 匹配结尾 . 匹配任意一个字符 [...] 匹配任意一个指定的字符 [^...] 匹配任意一个非指定的字符 * 匹配 ...

  4. Smarty3学习笔记

    Smarty3 笔记 By 飞鸿影~ -- :: Smarty入门 1.什么是smarty? Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离, 使php程序员只 ...

  5. Hive conf issue

    Hive --hiveconf v1="test" --hiveconf v2 -e "select * from ${hiveconf:v1} where col1=' ...

  6. smarty3.0中文手册文档API及使用指南

    1.安装Smarty3.0一.什么是smarty?smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变 ...

  7. Smarty笔记 和20个常用的变量操作符

    什么是Smarty变量操作符php模板引擎smarty内置的一些操作函数,我们称之为变量操作符,变量操作符可用于操作变量,自定义函数和字符.(跟我PHP中常用的PHP内部函数类似)他可以帮助我们完成很 ...

  8. work7

    uno. 理解C++变量的作用域和生命周期 没有要求讲解我就简单注释了一下~ #include <iostream>int main(){ for (int i=0;i<10;i++ ...

  9. Smarty模板引擎技术

    Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数 ...

随机推荐

  1. mysql网页客户端工具

    mysql数据库的远程管理,云服务器数据库的管理监控等都可以使用 TreeSoft,  TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB ...

  2. 使用AJAX实现分页

    Fenye.html <!DOCTYPE html> <html> <head> <title>分页</title> </head&g ...

  3. 自己编写jQuery插件 之 无缝滚动

    一. 效果图 二. Html骨架结构 <div class="box"> <ul> <li>1</li> <li>2&l ...

  4. RESULT_OK,RESULT_CANCELED,RESULT_FIRST_USER

    RESULT_OK是执行结果,有RESULT_OK,RESULT_CANCELED,RESULT_FIRST_USER 在调用系统app时返回时RESULT_CANCELED如字面意思代表取消,RES ...

  5. gearman入门初步

    原文地址:http://blog.sina.com.cn/s/blog_5f54f0be0101btsi.html     PHP 没有提供直接的并发功能.要实现并发,必须: function asy ...

  6. C#秒转换小时

    #region 秒转换小时 SecondToHour /// <summary> /// 秒转换小时 /// </summary> /// <param name=&qu ...

  7. c 字符串替换字符

    使用完释放记得内存free(str),防止内存泄露 char * replace (const char *str, const char *src, const char *dst){ const ...

  8. linux 局域网探测工具nmap

    NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个, 一是探测一组主机是否在线: 其次是扫描主机端口,嗅探所提供的网络服务: 还可以推断主机所用的操 ...

  9. poj2182 逆推暴力

    题意 告诉有n头牛,每头牛有一个编号1~n,再一次烂醉之后,奶牛们没有按照编号排队:告诉你对于第i头奶牛,在它之前有多少头奶牛比它的编号小(i>1,因为第1头奶牛的数据永远为0,故题中省略),求 ...

  10. oracle使用索引和不使用索引性能分析

    首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...