在regex_match()里边只能看到regex和输入的字符串是不是全部匹配上了,匹配上了就返回true,否则false。然而他不能返回匹配到的子字符串;regex_search()和regex_match()参数类型是一样的;返回的也是bool类型;但是它还可以查找到匹配的子字符串;将捕捉到的结果会保存在std::smatch里边;比如:

Std::smatch match;  用过调用match[1] 和 match[2]来查看捕获到的第一个和第二个捕获组;

#include <iostream>
#include <regex>
int main() {std::regex r("//(.+)(\\d{4})");std::string str;while(true){if(!std::getline(std::cin,str) || str == "q"){break;} else{std::smatch match;if(std::regex_search(str,match,r)){std::cout << "find this str : " << match[1] << "***" << match[2]<< std::endl;}else{std::cout << "invaild argument"  << std::endl;}std::cout << "prefix() :" << match.prefix() << std::endl;std::cout << "suffix() :" << match.suffix() << std::endl;}}return 0;
}

输入:

kslkf//kfskl89438sd

结果:

find this str : kfskl8***9438
prefix() :kslkf
suffix() :sd

其中std::smatch.prefix()返回的是匹配到的捕获组之前的部分

  std::smatch.suffix()返回的是匹配到捕获组之后的部分;

转载于:https://www.cnblogs.com/boost/p/10425663.html

regex_search相关推荐

  1. C++正则表达式(regex_match、regex_search与regex_replace)

    前言 1 转义字符 2 regex_match 2.1 基本概念 2.2 匹配结果 2.3 实例 3 regex_search 3.1 基本概念 3.2 实例 4 regex_replace 4.1 ...

  2. C++11之正则表达式(regex_match、regex_search、regex_replace)

    在C++11中引入了正则表达式. 字符规则 先来了解一下这个字符的含义吧. 字符 描述 \ 转义字符 $ 匹配字符行尾 * 匹配前面的子表达式任意多次 + 匹配前面的子表达式一次或多次 ? 匹配前面的 ...

  3. 正则表达式简介及在C++11中的简单使用

    正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种 ...

  4. C语言中regex_error,为什么这个C 11 std :: regex示例抛出一个regex_error异常?

    参见英文答案 > Is gcc 4.8 or earlier buggy about regular expressions?                                   ...

  5. C++中三种正则表达式比较

    工作需要用到C++中的正则表达式,所以就研究了以上三种正则. 1.C regex /* write by xingming * time:2012年10月19日15:51:53 * for: test ...

  6. C++11中正則表達式測试

    VC++2010已经支持regex了, 能够用来编译下述代码. #include <string> #include <regex> #include <iostream ...

  7. C++ Boost库初步使用 - 使用CFree

    首先下载并安装 Boost: 在CFree中编写代码如下: #include <windows.h> #include "resource.h" #include &l ...

  8. C++ boost 实例学习

    boost生成和解析json的完整例子 http://blog.csdn.net/dotphoenix/article/details/27081377 // // json_parser.h // ...

  9. 【正则表达式1】C++11正则表达式

    头文件 #include <regex> regex_match:整个字符串是否匹配 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 regex_match:只返回第一个匹配结果 ...

最新文章

  1. 5G空口存疑 革新还是4G演进?
  2. No module named ‘sklearn.utils.linear_assignment_‘
  3. .NET自定义获得JSON的方法(System.Runtime.Serialization.Json)
  4. SAP License:美资企业、台资企业和国企的区别
  5. Xshell连接mysql数据库乱码问题解决思路总结
  6. 知乎高赞:当update修改数据与原数据相同时会再次执行吗?
  7. 海域网域名解析服务器,域名系统dns实现的映射是
  8. 折腾凤凰系统 (by quqi99)
  9. 负数除以正数余数如何求_负数除正数的余数是正还是负?-工业支持中心-西门子中国...
  10. ar虚拟现实电子沙盘软件制作
  11. 【深入Java虚拟机】之七:Javac编译与JIT编译
  12. android onresume 后控件不能获取焦点,1.基本控件和布局 + 基本适配器 + Activity生命周期及传值和现场保护...
  13. J2EE学习篇之--JQuery技术具体解释
  14. ALtera DE2开发板学习03
  15. 初识react(13)—— 使用 moment 来获取日期
  16. python弹窗处理_python弹窗处理
  17. CPM2A-60CDR
  18. [招聘信息]QA Engineer@EMC
  19. 银联API | 银行卡信息查询 信息安全获取
  20. APP修改时区和设置系统语言

热门文章

  1. 网页游戏怎么修改数据_一周网页游戏开服数据总结(9.1-9.7)
  2. 均匀白噪声的定义及特点_噪声的物理本质是什么?
  3. 浏览器兼容_查成绩浏览器不兼容怎么办?
  4. 工作日报模板_千份财会人通用工作模板:自动核算工资、财务分析报表等等
  5. 计算机序号函数,EXCEL函数自动编号/编码单条件和多条件的几种方法
  6. 原生 ajax查询,原生ajax啦啦啦
  7. 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍
  8. 手机计算机数据消失了怎么恢复,电脑突然黑屏闪退之后怎么恢复丢失的数据
  9. (6) ebj学习:ejb使用jpa注解
  10. 十分钟入门RocketMQ