C++ 正则表达式regex(一)

2023-10-30

匹配字符串的基本规则

1. 匹配固定的字符串

regex e("abc");

2. 匹配固定字符串,不区分大小写

regex e("abc", regex_constants::icase);

3. 匹配固定字符串之外多一个字符,不区分大小写

regex e("abc.", regex_constants::icase);        // .  Any character except newline. 1个字符

4. 匹配0个或1个字符

regex e("abc?");                // ?        Zero or 1 preceding character. 匹配?前一个字符

5. 匹配0个或多个字符

regex e("abc*");                // *        Zero or more preceding character. 匹配*前一个字符

6. 匹配1个或多个字符

regex e("abc+");                // +        One or more preceding character. 匹配+前一个字符

7. 匹配特定字符串中的字符

regex e("ab[cd]*");                // [...]    Any character inside square brackets. 匹配[]内的任意字符

8. 匹配非特定字符串的字符

regex e("ab[^cd]*");                // [...]    Any character not inside square brackets. 匹配非[]内的任意字符

9. 匹配特定字符串,且指定数量

regex e("ab[cd]{3}");                // {n}        匹配{}之前任意字符,且字符个数为3个

10. 匹配特定字符串,指定数量范围

regex e("ab[cd]{3,}");                // {n}        匹配{}之前任意字符,且字符个数为3个或3个以上
regex e("ab[cd]{3,5}");            // {n}        匹配{}之前任意字符,且字符个数为3个以上,5个以下闭区间

11. 匹配规则中的某一个规则

regex e("abc|de[fg]");                // |        匹配|两边的任意一个规则

12. 匹配分组

regex e("(abc)de+");                // ()       ()表示一个子分组

13. 匹配子分组

regex e("(abc)de+\\1");            // ()       ()表示一个子分组,而\1表示在此位置匹配第一个分组的内容
regex e("(abc)c(de+)\\2\\1");            // \2        表示的是在此匹配第二个分组的内容

14. 匹配某个字符串开头

regex e("^abc.");                // ^    begin of the string        查找以abc开头的子字符串

15. 匹配某个字符串结尾

regex e("abc.$");                // $    end of the string        查找以abc结尾的子字符串

      以上是最基本的匹配模式的书写。通常如果要匹配特定的字符,需要使用\进行转义,比如在匹配字符串中需要匹配".",那么在匹配字符串中应该在特定字符前加上\。出了以上的基本规则,如果还不满足特定的需要,那么可以参考此链接。使用了解基本的匹配模式后,需要使用正则表达式进行匹配、查找或者替代。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 正则表达式regex(一) 的相关文章

  • C++ 动态内存

    了解动态内存在 C 中是如何工作的是成为一名合格的 C 程序员必不可少的 C 程序中的内存分为两个部分 栈 在函数内部声明的所有变量都将占用栈内存 堆 这是程序中未使用的内存 在程序运行时可用于动态分配内存 很多时候 您无法提前预知需要多少
  • C++ 数组

    C 支持数组数据结构 它可以存储一个固定大小的相同类型元素的顺序集合 数组是用来存储一系列数据 但它往往被认为是一系列相同类型的变量 数组的声明并不是声明一个个单独的变量 比如 number0 number1 number99 而是声明一个
  • C++ 正则表达式regex(一)

    匹配字符串的基本规则 1 匹配固定的字符串 regex e abc 2 匹配固定字符串 不区分大小写 regex e abc regex constants icase 3 匹配固定字符串之外多一个字符 不区分大小写 regex e abc
  • C++类上使用属性(__declspec property)

    原始代码如下 class A private int m nIndex public int getIndex return m nIndex void setIndex int value m nIndex value 如果采用属性方式实
  • VC++ 获取文件版本号

    源码实现 pragma comment lib Version lib typedef struct VS VERSIONINFO WORD wLength WORD wValueLength WORD wType WCHAR szKey
  • OpenGL GLFW入门篇 - 画点集

    效果图 主体代码 void DrawPoints void int i GLfloat x y glPushMatrix 另一个相对的Z平移可以分离对象 glLoadIdentity glTranslatef 0 0 0 0 0 f 设置点
  • C++ 结束进程

    有时候进程未正常退出 导致进程列表遗留僵尸进程 程序启动需要杀死这种僵尸进程 include TLHELP32 H void TerminateSelfApplication TCHAR szFileName MAX PATH 0 TCHA
  • C++ 内存共享/软件守护

    功能描述 在无人看守的情况下 防止软件意外退出 接口调用简单 只需要简单声明就行 int main int argc char argv QShareProcess shareProcess 共享内存名称随意 下面实现自己的主体代码即可 类
  • Windows下批处理管理Nginx应用程序

    每次更新完配置 通过命令行或者任务管理器来操作Nginx重启 操作起来 显得有点麻烦 下面脚本就是解决这个问题的 cls echo off set NGINX PATH d0 set NGINX DIR cd color 0a title
  • C++ 标准库中数据类型转换

    头文件引用
  • VC++ 在任务栏图标上显示进度条效果

    该功能主要是通过COM接口ITaskbarList3 来实现进度效果显示功能 头文件定义 CSWTaskBarList h pragma once include
  • 微信网页版接口详解

    一 网页版微信提供的HTTP接口 1 获取uuid 说明 用于获取显示二维码以及登录所需的uuid 标识获取二维码和扫码的为同一个用户 请求方式 GET 地址 https login wx qq com jslogin get参数 参数 示
  • C++ 基本的输入输出

    C 标准库提供了一组丰富的输入 输出功能 我们将在后续的章节进行介绍 本章将讨论 C 编程中最基本和最常见的 I O 操作 C 的 I O 发生在流中 流是字节序列 如果字节流是从设备 如键盘 磁盘驱动器 网络连接等 流向内存 这叫做输入操
  • C/C++ 打印菱形图案

    设计思路 以n行菱形为例 n为奇数 图形分为上下2部分 左上角坐标为 0 0 顶点坐标为 0 n 2 图形上半部分 0 n 2 从第1行到第n 2行 每行菱形数递增1个单位 同时每行菱形的起始坐标递减1个单位 图形下半部分 n 2 1 n
  • EasyPR编译指南

    1 下载源码 https github com liuruoze EasyPR Download ZIP或者git https github com liuruoze EasyPR git 将代码解压到硬盘目录下 例如F 车牌识别 Easy
  • vim/vi常用命令集

    格式 指令 或指令 参数 指令解释 文件操作 vim vi 打开一个空文件 vim vi a txt 打开当前目录中的a txt文件 若文件不存在则创建一个名为a txt的文件 指定保存位置为当前目录 vim vi home a txt 打
  • EAN13条形码绘制(Delphi版)

    单元声明 unit UnitEAN https wenku baidu com view d61eec0dc4da50e2524de518964bcf84b9d52d0d html 共有95 18 113条数据模块 1表示黑 0表示白 左侧
  • VC++ 源码实现通达信公式管理器2

    前面我们介绍了如何加载显示公式列表 本篇章介绍如何格式化显示公式内容 常用的CEdit或CRichEdit是不支持这种格式显示的 这里需要借助第三方控件SciLexer 没错 Notepad 就是使用的这个控件 它支持不同的文本内容支持不同
  • CFileDialog 多文件选择注意事项

    当选择文件数量比较多的时候 发现CFileDialog返回文件名并不完整 翻阅MSDN发现文件名长度是有限制的 解决思路 CFileDialog dlgOpen TRUE T txt NULL OFN HIDEREADONLY OFN RE
  • VC++ FTP文件下传(断点续传)

    include

随机推荐

  • android apk应用系统集成编译错误问题

    在系统源码中添加一个APK源码目录 并写了相应的android mk文件 编译时出错如下 make No rule to make target out target common obj JAVA LIBRARIES liba71S in
  • ServletRequest和HttpServletRequest为什么可以强制转换

    ServletRequest强制转换为HttpServletRequest为什么没报错呢 先看一下普通转换 1 父类对象强转成子类 出错ClassCastException Father f new Father Son s Son f 2
  • 插入排序的递归算法

    一 算法思想 由插入排序的基本思想可以得到它的递归算法 确定前面的数是已经排好序了的 从当前数开始 依次一个个的插入到前面的数中 二 代码 插入排序的递归算法 void insert vector
  • 【C++】multiset用法

    转自 https blog csdn net sodacoco article details 84798621 c 语言中 multiset是
  • 【Clipping input data to the .... for integers).】的解决办法

    Clipping input data to the for integers 的解决办法 参考资料 https www freesion com article 7534157435 在用matplotlib pyplot显示输入图像时
  • 磁盘扩容(LVM)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 磁盘扩容 LVM 一 LVM是什么 二 LVM制作 创建LVM逻辑卷 创建pv 物理卷 创建vg 卷组 创建lv 逻辑卷 制作文件系统并挂载 制作文件系统 格式化 挂载 查看
  • IDEA的基本使用

    1 设置字体 2 改背景颜色默认为白色 file gt settings Darcula是黑色 3 设置maven 4 单个项目工程的设置 使用idea创建java项目 sdk默认是内置的 我们要选择自己的 jdk idea中 一个项目就是
  • 专访 UIUC 李博

    ChatGPT 的出现让 AI 再次引起了一场科技圈的震动 这场震动影响深远 让科技界分为两派 一派认为 AI 迅速发展可能会在不久后取代人类 这种 威胁论 虽然不无道理 但另一派也提出不同观点 AI 的智力水平依然尚未赶超人类甚至 还不如
  • 如何安装stegdetect(Windows下)

    一 stegdetect 简介 1 笼统的来说 stegdetect 就是用来检测jpg类型的图片是否隐藏着其他文件或内容 据说 他还会尝试识别是用什么隐写工具将额外的信息隐藏在图片中 2 使用stegdetect时会有一些参数 下面简单罗
  • 安装pip install tensorflow==1.14报错

    pip install tensorflow 1 14 一直报错 显示只能安装2 0 以上版本时 请确认python版本是否低于3 8 3 8以上版本不支持1 x 将python 降级为3 7即可
  • 【oracle19c创建表空间及用户】

    一 oracle创建表空间及用户 1 查看当前连接的容器 SQL gt show con name CON NAME CDB ROOT 此时使用的是CDB容器 需要切换到PDB中进行 2 查看pdb下库的信息 SQL gt select n
  • Linux下安装python及更改系统原有python

    Linux下安装python及更改系统原有python 1 Linux下安装python linux中下载安装的源码文件一般习惯放在 usr local src 中 src是source的缩写 进入该目录 用wget 下载就行 假设我下载的
  • 前后端分离理解

    历史渊源 借Jsp来举例 jsp就是一个典型的前后端耦合在一起的典型的计数案例 这种模式在以前互联网不那么繁荣 web化趋势还不是那么明显的年代发挥着巨大的作用 但是随着社会技术的不断加深 各种各样的服务都web化以后 其实很多前端展示的东
  • Linux内核:配置内核(一)

    本文译自Linux orgDevynCJohnson的系列文章 Linux内核 本篇链接 http www linux org threads the linux kernel configuring the kernel part 1 4
  • Python实现 身体质量指数BMI的计算(嵩天老师)

    示例5 身体质量指数BMI BMI的定义 BMI 国际上常用的衡量人体肥胖和健康程度的重要标准 主要用于统计分析 定义 BMI 体重 kg 身高 身高 m m 身体质量指数标准 思路方法 难点在于同时输出国际和国内对应的分类 思路1 分别计
  • C++中cin.clear()的用法

    我们谈谈cin clear的作用 第一次看到这东西 很多人以为就是清空cin里面的数据流 而实际上却与此相差很远 首先我们看看以下代码 include
  • C++多线程加锁详解(易于理解)

    参考 C 多线程基础教程 c 11多线程之使用std try to lock摸鱼 include lt mutex gt mutex m 实例化对象m m lock 不推荐这么做 如果忘记unlock会锁死 m unlock 使用lock
  • Python基础篇(三)-- 列表、元组、字典、集合、字符串

    前面一篇简单介绍了Python的数据类型与运算符 这一节主要学习Python中5种常用序列结构 列表 元组 集合 字典和字符串的详细使用和一些技巧 下图概括了本篇的主要内容 1 序列 在数学上 序列也称数列 按一定顺序排列的数 程序设计中序
  • java判断 图片_java判断文件是否是图片的方法

    java判断文件是否是图片的方法 发布时间 2020 06 10 18 32 53 来源 亿速云 阅读 278 作者 鸽子 java判断文件是否是图片的方法 1 通过判断文件后缀名String extension int i fileNam
  • C++ 正则表达式regex(一)

    匹配字符串的基本规则 1 匹配固定的字符串 regex e abc 2 匹配固定字符串 不区分大小写 regex e abc regex constants icase 3 匹配固定字符串之外多一个字符 不区分大小写 regex e abc