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 程序中的内存分为两个部分 栈 在函数内部声明的所有变量都将占用栈内存 堆 这是程序中未使用的内存 在程序运行时可用于动态分配内存 很多时候 您无法提前预知需要多少
  • JS 元素遍历

    1 循环遍历从getElementsByClassName返回的所有元素 var elements document getElementsByClassName classname Array prototype forEach call
  • C++ 数组

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

    时光流逝 时间过的真快啊 疲于工作 发现近一个多月没写文章了 此文算是对最近的工作做个总结吧 经过尽二个月的不断摸索 TightVNC终于支持H264编解码了 前期真正编写H264编解码器只花了一周左右时间 但是测试发现效果并不是太理想 帧
  • 多语言版本 OPENFILENAME过滤器设置问题

    正常的时候 打开并选择一个文件这样写代码 char szFileName MAX PATH 0 OPENFILENAME ofn memset szFileName 0 MAX PATH memset ofn 0 sizeof ofn of
  • C++之xlsx文件操作之写操作

    采用xlsxwriter开源库的实现 声明如下 include xlsxwriter include xmlwriter h include xlsxwriter include workbook h include xlsxwriter
  • 通过GetVersionEx和ntoskrnl.exe获取操作系统版本号

    include
  • Windows下批处理管理Nginx应用程序

    每次更新完配置 通过命令行或者任务管理器来操作Nginx重启 操作起来 显得有点麻烦 下面脚本就是解决这个问题的 cls echo off set NGINX PATH d0 set NGINX DIR cd color 0a title
  • C++ 正则表达式regex(二)

    正则匹配 查找与替代 书写好模式字符串后 需要将待匹配的字符串和模式字符串进行一定规则的匹配 包括三种方式 匹配 regex match 查找 regex search 替换 regex replace 匹配很简单 直接将待匹配字符串和模式
  • VC++ 在任务栏图标上显示进度条效果

    该功能主要是通过COM接口ITaskbarList3 来实现进度效果显示功能 头文件定义 CSWTaskBarList h pragma once include
  • VC++ 设定Windows程序自启动(非管理员权限)

    Windows程序自启动方式有很多种 任务计划 注册表 启动项等等 创建任务计划和启动项 都需要程序具有管理员权限才能写入 在此略过 只介绍启动项方式 要实现启动项方式 必须要知道当前用户下启动项方式的目录 我们才好将程序或程序的快捷方式存
  • C++ 可扩展的内存缓冲区

    类声明 CMemBuffer h pragma once class CMemBuffer public CMemBuffer DWORD dwSize 0 CMemBuffer void 申请内存 BOOL Realloc DWORD d
  • C++ 多态

    多态按字面的意思就是多种形态 当类之间存在层次结构 并且类之间是通过继承关联时 就会用到多态 C 多态意味着调用成员函数时 会根据调用函数的对象的类型来执行不同的函数 下面的实例中 基类 Shape 被派生为两个类 如下所示 实例 incl
  • TightVNC H264编解码(二)之硬编码库的编译

    AVCodec codec avcodec find encoder by name nvenc h264 如果是默认的ffmpeg库 返回结果是NULL 看来是不带有硬编码功能的 重新编译分支ffnvcodec 不到半个小时编译完成 返回
  • GDI+ 显示GIF图像

    头文件定义 pragma once include
  • C/C++ 打印菱形图案

    设计思路 以n行菱形为例 n为奇数 图形分为上下2部分 左上角坐标为 0 0 顶点坐标为 0 n 2 图形上半部分 0 n 2 从第1行到第n 2行 每行菱形数递增1个单位 同时每行菱形的起始坐标递减1个单位 图形下半部分 n 2 1 n
  • VCPKG 包下载失败解决思路

    vcpkg经常会遇到资源无法访问 可能是域名解析出了问题 我们只需要将域名解析后的ip地址添加到hosts文件列表中可解决此问题 如 185 199 108 133 raw githubusercontent com 在此之前可先通过终端p
  • C++ 标准库

    C 标准库可以分为两部分 标准函数库 这个库是由通用的 独立的 不属于任何类的函数组成的 函数库继承自 C 语言 面向对象类库 这个库是类及其相关函数的集合 C 标准库包含了所有的 C 标准库 为了支持类型安全 做了一定的添加和修改 标准函
  • EAN13条形码绘制(Delphi版)

    单元声明 unit UnitEAN https wenku baidu com view d61eec0dc4da50e2524de518964bcf84b9d52d0d html 共有95 18 113条数据模块 1表示黑 0表示白 左侧
  • VC++ OpenCV+ZBar二维码识别

    利用OpenCV处理图像的优势 结合ZBar提高二维码识别结果 接口定义 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