regex_search
在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相关推荐
- 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 ...
- C++11之正则表达式(regex_match、regex_search、regex_replace)
在C++11中引入了正则表达式. 字符规则 先来了解一下这个字符的含义吧. 字符 描述 \ 转义字符 $ 匹配字符行尾 * 匹配前面的子表达式任意多次 + 匹配前面的子表达式一次或多次 ? 匹配前面的 ...
- 正则表达式简介及在C++11中的简单使用
正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种 ...
- C语言中regex_error,为什么这个C 11 std :: regex示例抛出一个regex_error异常?
参见英文答案 > Is gcc 4.8 or earlier buggy about regular expressions? ...
- C++中三种正则表达式比较
工作需要用到C++中的正则表达式,所以就研究了以上三种正则. 1.C regex /* write by xingming * time:2012年10月19日15:51:53 * for: test ...
- C++11中正則表達式測试
VC++2010已经支持regex了, 能够用来编译下述代码. #include <string> #include <regex> #include <iostream ...
- C++ Boost库初步使用 - 使用CFree
首先下载并安装 Boost: 在CFree中编写代码如下: #include <windows.h> #include "resource.h" #include &l ...
- C++ boost 实例学习
boost生成和解析json的完整例子 http://blog.csdn.net/dotphoenix/article/details/27081377 // // json_parser.h // ...
- 【正则表达式1】C++11正则表达式
头文件 #include <regex> regex_match:整个字符串是否匹配 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 regex_match:只返回第一个匹配结果 ...
最新文章
- 5G空口存疑 革新还是4G演进?
- No module named ‘sklearn.utils.linear_assignment_‘
- .NET自定义获得JSON的方法(System.Runtime.Serialization.Json)
- SAP License:美资企业、台资企业和国企的区别
- Xshell连接mysql数据库乱码问题解决思路总结
- 知乎高赞:当update修改数据与原数据相同时会再次执行吗?
- 海域网域名解析服务器,域名系统dns实现的映射是
- 折腾凤凰系统 (by quqi99)
- 负数除以正数余数如何求_负数除正数的余数是正还是负?-工业支持中心-西门子中国...
- ar虚拟现实电子沙盘软件制作
- 【深入Java虚拟机】之七:Javac编译与JIT编译
- android onresume 后控件不能获取焦点,1.基本控件和布局 + 基本适配器 + Activity生命周期及传值和现场保护...
- J2EE学习篇之--JQuery技术具体解释
- ALtera DE2开发板学习03
- 初识react(13)—— 使用 moment 来获取日期
- python弹窗处理_python弹窗处理
- CPM2A-60CDR
- [招聘信息]QA Engineer@EMC
- 银联API | 银行卡信息查询 信息安全获取
- APP修改时区和设置系统语言
热门文章
- 网页游戏怎么修改数据_一周网页游戏开服数据总结(9.1-9.7)
- 均匀白噪声的定义及特点_噪声的物理本质是什么?
- 浏览器兼容_查成绩浏览器不兼容怎么办?
- 工作日报模板_千份财会人通用工作模板:自动核算工资、财务分析报表等等
- 计算机序号函数,EXCEL函数自动编号/编码单条件和多条件的几种方法
- 原生 ajax查询,原生ajax啦啦啦
- 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍
- 手机计算机数据消失了怎么恢复,电脑突然黑屏闪退之后怎么恢复丢失的数据
- (6) ebj学习:ejb使用jpa注解
- 十分钟入门RocketMQ