当前位置: 首页 > news >正文

【C++语言】正则表达式

一、正则表达式的概念

       正则是一种规则,它用来匹配(进而捕获、替换)字符串。字符串根据正则规则进行处理,这种规则被许多语言所支持,C++11以后才支持正则。

二、具有特殊意义的元字符

\:\字符能够改变字符原本的含义

^:^字符指示字符串的头,且要求字符串以字符开头,不占位,\^表示一个真正的^符号

$:$字符指示字符串的尾,且要求字符串以字符结尾,不占位,\$表示一个真正的$符号

():分组,大正则中包含小正则,可以改变默认的优先级,在模式中可以使用\1来表示第一组已然捕获到的东西

\b:指示字符串的边界(头/尾/空格左/空格右)

.:表示一个除了\n以外的任意一个字符,\.表示一个真正的.符号

|:字符串1 | 字符串2表示一个字符串,该字符串是字符串1和字符串2中的一个。|在正则表示式中的优先级比较混乱,所以建议加上足够多的括号来分组

[]:[字符1字符2字符3……]表示一个字符,该字符是字符1,字符2,字符3……中的某一个。中括号中出现的所有字符都是代表本身意思的字符(没有特殊含义),如[.]只能匹配.符号,而不能匹配任意符号

[^字符1字符2字符3……]:表示一个字符,该字符不是字符1,字符2,字符3……中的任意一个

[a~z]:表示一个字符,该字符是a,b,c……中的某一个

[^a~z]:表示一个字符,该字符不是a,b,c……中的某一个

\w:表示一个字符,该字符是数字、字母、下划线中的某一个。等价于[(0~9)(a~z)(_)]

\W:表示一个字符,该字符不是数字、字母、下划线中的任何一个。等价于[]

\d:表示一个字符,该字符是0、1、2…9中的某一个

\D:表示一个字符,该字符不是0、1、2…9中的任何一个

\s:表示一个字符,该字符是空白符(空格、制表符、换页符);代表出现的次数

三、量词元字符

:字符要求字符出现0到多次

+:字符+要求字符出现1到多次

?:字符?要求字符出现0次或者1次

{n}:字符{n}要求字符出现n次

{n,}:字符{n,}要求字符出现n到多次

{n,m}:字符{n,m}要求字符出现n到m次

所以含有\的元字符,在C++定义时,都要写成\\

四、常用的正则表达式

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 主机安全-进程、命令攻击与检测
  • 哪些事件会导致浏览器窗口宽高变化
  • 使用jsencrypt在web前端对字符串进行Ras加密
  • MySQL 日志深度解析:从查询执行到性能优化
  • 从零开始实现大语言模型(五):缩放点积注意力机制
  • idea启动ssm项目详细教程
  • llama-recipes
  • YOLO v8进行目标检测的遇到的bug小结
  • 澳门建筑插画:成都亚恒丰创教育科技有限公司
  • 【操作系统】进程管理——死锁(个人笔记)
  • IP 地址与 CDN 性能优化
  • java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Int
  • 【系统架构设计】计算机组成与体系结构(三)
  • 【机器学习理论基础】回归模型定义和分类
  • 【CSS in Depth 2 精译】2.6 CSS 自定义属性(即 CSS 变量)+ 2.7 本章小结
  • JavaScript 基础知识 - 入门篇(一)
  • linux安装openssl、swoole等扩展的具体步骤
  • Objective-C 中关联引用的概念
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 复杂数据处理
  • 《码出高效》学习笔记与书中错误记录
  • puppet连载22:define用法
  • Python 之网络式编程
  • ​比特币大跌的 2 个原因
  • ​你们这样子,耽误我的工作进度怎么办?
  • #ifdef 的技巧用法
  • (4)(4.6) Triducer
  • (C语言)fread与fwrite详解
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (学习日记)2024.01.09
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net FrameWork简介,数组,枚举
  • .NET Framework杂记
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 依赖注入和配置系统
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @SpringBootApplication 注解
  • [AI aider] 打造终端AI搭档:Aider让编程更智能更有趣!
  • [AIGC] 广度优先搜索(Breadth-First Search,BFS)详解
  • [Bug]使用gradio创建应用提示AttributeError: module ‘gradio‘ has no attribute ‘inputs‘
  • [hdu 4405] Aeroplane chess [概率DP 期望]
  • [java/jdbc]插入数据时获取自增长主键的值
  • [java面试]宇信易诚 广州分公司 java笔试题目回忆录
  • [LeetCode 127] - 单词梯(Word Ladder)
  • [LeetCode] 2.两数相加
  • [LeetCode]-Integer to Roman 阿拉伯数字转罗马数字
  • [LeetCode]剑指 Offer 42. 连续子数组的最大和
  • [Linux] MySQL数据库之索引
  • [MTK]安卓8 ADB执行ota升级
  • [NSSCTF 2022 Spring Recruit]ezgame