C++11 | 正则表达式(4)
C++11还支持正则表达式里的子表达式(也叫分组),用sub_match这个类就行了。
举个简单的例子,比如有个字符串“/id:12345/ts:987697413/user:678254
”,你想提取id,就可以使用子表达式。代码片段如下:
std::string strEx = "info=/id:12345/ts:987697413/user:678254";std::regex idRegex("id:(\\d+)/");auto itBegin = std::sregex_iterator(strEx.begin(),strEx.end(), idRegex);auto itEnd = std::sregex_iterator();std::smatch match = *itBegin;std::cout << "match.length : " << match.length() << "\n";std::cout << "entire match - " << match[0].str().c_str() << " submatch - " << match[1].str().c_str() << "\n";
在上面的代码里,smatch其实是std::match_results<std::string::const_iterator>
,它代表了针对string类型的match_results,它里面保存了所有匹配到正则表达式的子串(类型为sub_match),其中索引为0的,是完整匹配到正则表达式的子串,其它的,是匹配到的子表达式的字符串结果。
对我们的代码片段,子表达式(\\d+)
匹配到的数字就是12345
。
相关:
- C++11 | 正则表达式(3)
- C++11 | 正则表达式(2)
- C++11 | 正则表达式(1)
- C++11 | range-based for loop
- C++11 | 自动类型推断——auto
- C++11 | 运行时类型识别(RTTI)
转载于:https://www.cnblogs.com/hehehaha/p/6147412.html
C++11 | 正则表达式(4)相关推荐
- c++11正则表达式(一)——匹配模式(pattern)
一.作用 pattern 是一个c++字符串,它作用是给出一匹配规则,去检测给定字符串是否具备这种拼接规则. 二.模式字符串的语法规则 需要插入一句题外话,在特殊元字符中会用到\,对于c/c++而言它 ...
- linux学习11 正则表达式与文件格式化处理
目录 1.正则表达式简介 2.grep的一些高级选项及参数 3.基础正则表达式练习 查找特定字符串 利用[ ]查找集合字符 行首行尾字符^$ 任意一个字符与重复字符 . * 限定RE字符范围{ } 基 ...
- C++11 正则表达式——实例1
该实例通过一个函数is_email_valid 来检查一个email地址是否是一个正确的格式.如果格式正确则返回true. #include <regex> #include <io ...
- 【正则表达式1】C++11正则表达式
头文件 #include <regex> regex_match:整个字符串是否匹配 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 regex_match:只返回第一个匹配结果 ...
- 黑马程序员——11 正则表达式
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式 一.概念 符合一定规则的表达式,用于专门操作字符串,可以简化对字符串的复杂操作,主要 ...
- C++11正则表达式例子集合
#include <string> #include <regex> #include <iostream> using namespace std;int tes ...
- [2017.11.05]正则表达式集合list
正则表达式 1.演示: import java.util.Scanner;/*** 需求:校验一个QQ号码* 定义一个规则:1)由5到10为组成的数字* 2)不能以0开头 * 分析:* 1)键盘录入一 ...
- 正则表达式的顺序优先级
前言 假设存在匹配示例:匹配a-c@或a@ 你认为正则a|(a-c)(?=\W)与(a-c)|a(?=\W)都能匹配上面的示例吗?这2个正则有什么本质区别?哪一个才是正确的写法?--这就涉及了正则表达 ...
- python正则表达式——re模块
参考:python文档re --- 正则表达式操作 - Python 3.10.0 文档 目录 1.整体了解 2. 语法 3. re.match 4. re.search re.match与re.se ...
- 正则 指定开头结尾_Python核心知识系列:正则表达式与JSON
1 正则表达式必知必会 1.1 简介 正则表达式:是一些用来匹配和处理文本的字符串. 正则表达式的使用场景主要以下两种情况:一是查找特定的信息(搜索),二是查找并编辑特定的信息(替换). 用模式(pa ...
最新文章
- 使用PostMan测试文件上传接口
- VS2015 编译输出的*.lib,*.dll,*.exe的区别
- 第六章apache目录文件的位置及作用
- asp.net代码中修改web.config节点
- 《数学之美》——第三章 个人笔记
- C++编译单元 内部链接 外部链接
- ClickHouse表引擎之Integration系列
- 怎么查看XP电脑服务器型号,xp怎么查看电脑配置
- 米斯特白帽培训讲义 工具篇 Nmap
- 线程的创建以及线程的本质
- selenium2 原理和常用api
- 使用sqrt函数开根号:
- python tkinter画布_Python tkinter Canvas画布完全攻略(超级详细)
- matlab矩阵赋未知数,matlab设未知数
- C语言生成负指数分布,泊松分布与负指数分布的关系
- LAPARDIN WEDLUTS Romantic Wedding LUTs 浪漫唯美婚礼电影调色预设
- 基于STM32采集CO2(MH-Z19C)传感器数据
- Python爬虫实践2,企业工商信息查询
- redhat enterprise 5 上安装oracle 10.2.0.1
- vscode 实现在行尾加分号