boost C++的正则表达式库boost.regex可以应用正则表达式于C++。正则表达式大大减轻了搜索特定模式字符串的负担,在很多语言中都是强大的功能。

boost.regex库中两个最重要的类是boost::regex和boost::smatch,它们都在boost/regex.hpp文件中定义。前者用于定义一个正则表达式,而后者可以保存搜索结果。

小结:C++的正则表达式库早已有之,但始终没有哪个库纳入到标准化流程中。目前该库已经顺利的成立新一代C++标准库中的一员,结束了C++没有标准正则表达式支持的时代。

1 boost::regex_match

正则表达式匹配

2 boost::regex_replace

正则表达式替换

3 boost::regex_search

正则表达式检索

 #include <iostream>
#include <boost/regex.hpp> void main()
{
std::string str = "chinaen 8Glish"; boost::regex expr("(\\w+)\\s(\\w+)"); //+ 用来表示重复一或多次
//d-digit 任何0-9之间的数字
//s-space 任何空格字符
//u-upper A-Z之间的大写字母。如果设置了地域的话,可能包含其他字符
//w-word 任何单词字符-字母数字下划线 std::cout << boost::regex_match(str, expr) << std::endl;//匹配1,不匹配0 boost::smatch what; if (boost::regex_search(str, what, expr))//正则表达式检索
{
std::cout << what[] << std::endl;
std::cout << what[] << std::endl;
std::cout << what[] << std::endl;
std::cout << what[] << std::endl;
}
else
{
std::cout << "检索失败" << std::endl;
}
}

boost::regex_replace

正则表达式替换

//s-space 任何空格字符

 #include <iostream>
#include <boost/regex.hpp> void main()
{
std::string str = "chinaen 8Glish"; boost::regex expr("\\s");//s-space 任何空格字符 std::string tihuan = "____"; std::cout << boost::regex_replace(str, expr, tihuan) << std::endl;//把expr替换
}

#include <boost/regex.hpp>的更多相关文章

  1. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  2. Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include

    问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...

  3. error RC1015: cannot open include file 'afxres.h' 解决办法

    在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...

  4. Mybatis常用总结:参数,返回,执行sql,include等

    1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...

  5. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  6. JSP中编译指令include与动作指令include的区别

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...

  7. C/C++ 中的include

    当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...

  8. 织梦多语言站点,{dede:include filename=''/}引入问题

    织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...

  9. PHP 站点相对包含,路径的问题解决方法(include,require)

    以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...

  10. 如何让include标签包裹的布局置于屏幕最下方?

    如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性  a ...

随机推荐

  1. 嵌入式设备web服务器

    操作系统:ubuntu10.04 前言:    为了提高对设备的易操作性,很多设备中提供pc机直接通过浏览器操作设备的功能.这就需要在设备中实现web服务器.    现在在嵌入式设备中所使用的web服 ...

  2. PHP代码,拒绝频繁访问

    一个网站性能有限,如果有人恶意去频繁对页面进行刷新,其实对服务器影响是很大的,导致资源使用非常高,直接影响到其他用户的体验. 那么对于这样的一些频繁访问,我们该如何去拒绝它呢? 我总结了两种方法:第一 ...

  3. LD1-M(简单图的判定+构造,Havel定理)

    题目链接 /* *题目大意: *给出一个图的每个点的度的序列,求能否构成一个简单图,如果能构出简单图,则输出图的邻接矩阵; * *算法思想: *Havel定理的应用; *给定一个非负整数序列{dn}, ...

  4. The Java™ Tutorials下载地址

    1.The Java™ Tutorials下载地址: http://www.oracle.com/technetwork/java/javase/java-tutorial-downloads-200 ...

  5. grep, egrep, fgrep笔记

    grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATT ...

  6. Objective C - UIColor

    UIColor+Hex.h #import <UIKit/UIKit.h> @interface UIColor (Hex) + (UIColor *) colorWithHexStrin ...

  7. mysql、sqlServer、hsql、oracle、db2各数据库支持的字段类型与最大精度

  8. Java开发23中设计模式

    设计模式(Design Patterns) 设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结.使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性.毫无疑问 ...

  9. [Oracle]查看和修改连接数

    #登陆数据库sqlplus system/*** as sysdba #显示当前最大连接数:show parameter processes; show parameter sessions; #修改 ...

  10. PreparedStatement设置时间

    程序代码里面需要用PreparedStatement来设置时间过滤参数,时间参数中带有时分秒,用ps.setDate来设置的时候,会丢失时间部分,只有日期,用setTimestamp来设置参数,既有日 ...