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[] << "***" << match[]<< std::endl;
}else
{
std::cout << "invaild argument" << std::endl;
}
std::cout << "prefix() :" << match.prefix() << std::endl;
std::cout << "suffix() :" << match.suffix() << std::endl;
}
}
return ;
}
输入:
kslkf//kfskl89438sd
结果:
find this str : kfskl8***9438
prefix() :kslkf
suffix() :sd
其中std::smatch.prefix()返回的是匹配到的捕获组之前的部分
std::smatch.suffix()返回的是匹配到捕获组之后的部分;
regex_search的更多相关文章
- 使用Boost Regex 的regex_search进行遍历搜索
在regex_search函数中,会将找到的第一个匹配结果保存到一个smatch类中. 然而如果搜索字符串中有多个匹配结果,则需要自己实现了. 在smatch中,有两个成员,官方文档如下: itera ...
- C++中的也能使用正则表达式
正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...
- c++11 正则表达式基本使用
c++ 11 正则表达式 常用的方法 regex_match regex_search regex_replace 等. regex_match 要求正则表达式必须与模式串完全匹配,例如: strin ...
- 转:C++ Boost/tr1 Regex(正则表达式)快速指南
C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...
- 正则表达式python和C++对比
pattern格式(基本通用): pattern格式 符号 说明 ^ 匹配开头 $ 匹配结尾 . 匹配任意一个字符 [...] 匹配任意一个指定的字符 [^...] 匹配任意一个非指定的字符 * 匹配 ...
- Eclipse+Mingw+Boost 环境搭建
一.安装CDT插件 Eclipse是用Java的swt开发的,所以需要java虚拟机才能运行,jdk的配置方法网上一大堆,这里就不细说了.安装CDT的方法简单提一下,到Help->Eclipse ...
- c++0x新特性实例(比较常用的)
//array #include <array> void Foo() { array<> a; generate(a.begin(),a.end(),rand); sort( ...
- HDU 自动刷题机 Auto AC (轻轻松松进入HDU首页)
前言: 在写这篇文章之前,首先感谢给我思路以及帮助过我的学长们 以下4篇博客都是学长原创,其中有很多有用的,值得学习的东西,希望能够帮到大家! 1.手把手教你用C++ 写ACM自动刷题神器(冲入HDU ...
- 手把手教你用C++ 写ACM自动刷题神器(冲入HDU首页)
转载注明原地址:http://blog.csdn.net/nk_test/article/details/49497017 少年,作为苦练ACM,通宵刷题的你 是不是想着有一天能够荣登各大OJ榜首,俯 ...
随机推荐
- linux下安装jdk8
https://www.cnblogs.com/shihaiming/p/5809553.html
- Redis 学习资料目录(Important)
redis学习路线: 以下是整理的学习redis优秀博客和优秀网站 一.原理: 1. redis命令在线操作 http://try.redis.io/ 2. 中文命令解释: Redis 命令参考 - ...
- 统计SQL Server所有表记录数
SELECT SCHEMA_NAME(t.schema_id) AS [schema] ,t.name AS tableName ,i.rows AS [rowCount] FROM sys.tabl ...
- fontforge制作自定义字体及在手机上应用举例——张鑫旭
一.看似无关紧要的事件背景 之所以花时间折腾fontforge这个软件,去制作什么自定义的字体是有原因滴. 之前提过,最近我抽空将公司的手机软件HTML5网页化.期间碰到这么一个问题,页面低栏上的电话 ...
- 简洁php的MVC框架
一.文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二.控制器 我们在contr ...
- drupal smtp could not connect to smtp
情况说明: 使用了SMTP Authentication Support 模块. 配置都没问题,是从另一台服务器迁过来的网站和数据库. 原因是客户的smtp服务器限制了我们新服务器的IP. 验证方式t ...
- p2p项目工具类
1.用于存放当前用户的上下文UserContext package com.xmg.p2p.base.util; import javax.servlet.http.HttpSession; impo ...
- WPF ListView 分组 Grouping
在Resource里定义数据源和分组字段: <CollectionViewSource x:Key="listData" Source="{Binding Cate ...
- 导出PDF乱码
客户问题: 客户环境 LINUX系统weblogic10.3.0.0 用weblogic自带 JDK160_05 导出PDF中文字体全是口 解决方法: 客户的说他们的测试服务器和生产服务器环境是 ...
- Linux 系统下 centOS 7 ipconfig 提示没有安装
首先更正一下,在Linux系统下,查看IP地址,指令是ifconfig 没有root权限情况下,安装指令为 sudo yum -y install net-tool 有root权限的话,直接执行 yu ...