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

C++ | 使用正则表达式匹配特定形式的字符串

C++ | 使用正则表达式匹配特定形式的字符串

在 C++ 中,可以使用 <regex> 头文件提供的正则表达式库来对特定形式的字符串进行匹配操作。

常用的正则表达式模式语法

  1. 普通字符

    • 普通字符会按照其字面意义进行匹配,例如 a 会匹配字符 a
  2. 转义字符

    • \:用于转义特殊字符,例如 \\ 匹配 \
    • .:匹配除换行符外的任意字符。
  3. 字符类

    • [abc]:匹配字符 a, b, 或 c 中的任意一个。
    • [a-z]:匹配 az 范围内的任意字符。
    • [^abc]:匹配除 a, b, 和 c 之外的任意字符。
  4. 重复次数

    • *:匹配前面的子表达式零次或多次。
    • +:匹配前面的子表达式一次或多次。
    • ?:匹配前面的子表达式零次或一次。
    • {n}:匹配前面的子表达式恰好 n 次。
    • {n,}:匹配前面的子表达式至少 n 次。
    • {n,m}:匹配前面的子表达式至少 n 次但不超过 m 次。
  5. 定位符

    • ^:匹配输入字符串的开始。
    • $:匹配输入字符串的结尾。
    • \b:匹配单词边界。
  6. 捕获组

    • (pattern):捕获匹配的子表达式。
  7. 特殊字符

    • \d:匹配任意数字字符。
    • \w:匹配任意字母、数字或下划线字符。
    • \s:匹配任意空白字符。

使用正则表达式匹配字符串用法示例

#include <iostream>
#include <regex>
#include <string>int main() {std::string input = "(1,2),(2,3),(4,5)";// 定义正则表达式模式std::regex pattern("\\((\\d+),(\\d+)\\)");// 迭代器用于遍历匹配结果std::sregex_iterator it(input.begin(), input.end(), pattern);std::sregex_iterator end;// 遍历匹配结果并输出while (it != end) {std::smatch match = *it;std::cout << "Matched: " << match.str() << std::endl;std::cout << "Group 1: " << match[1].str() << std::endl; // 第一个括号内的数字std::cout << "Group 2: " << match[2].str() << std::endl; // 第二个括号内的数字++it;}return 0;
}

示例输出:

Matched: (1,2)
Group 1: 1
Group 2: 2
Matched: (2,3)
Group 1: 2
Group 2: 3
Matched: (4,5)
Group 1: 4
Group 2: 5
http://www.lryc.cn/news/308185.html

相关文章:

  • 计算机组成原理-第一/二章 概述和数据的表示和运算【期末复习|考研复习】
  • 基于transform的scale属性,动态缩放整个页面,实现数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求
  • Linux第67步_linux字符设备驱动_注册和注销
  • 设计模式:软件工程的艺术
  • 试题 算法训练 数的潜能
  • OpenAI Triton 入门教程
  • 【flask+python】利用魔术方法,更优雅的封装model类
  • Qt程序设计-报警灯自定义控件实例
  • Linux之定时任务02
  • PHP堆栈+errLog定位
  • 【大数据】Flink SQL 语法篇(七):Lookup Join、Array Expansion、Table Function
  • 【云原生】Spring Cloud Gateway的底层原理与实践方法探究
  • springboot 实现本地文件存储
  • Python进阶学习:Pandas--查看DataFrame中每一列的数据类型
  • Groovy - 大数据共享搜索配置
  • 第三节:Vben Admin登录对接后端login接口
  • 关于CSS 优先级布局应用的教程
  • vue2+elementui上传照片(el-upload 超简单)
  • 目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机(附代码)
  • Javascript:输入输出
  • Windows系统安装TortoiseSVN并结合内网穿透实现远程访问本地服务器——“cpolar内网穿透”
  • HarmonyOS 开发之———应用程序入口—UIAbility的使用
  • 推荐几款优秀免费开源的导航网站
  • input输入框过滤非金额内容保留一个小数点和2位小数
  • 推荐系统经典模型YouTubeDNN代码
  • 学习加密(三)spring boot 使用RSA非对称加密,前后端传递参数加解密
  • 面向对象编程入门:掌握C++类的基础(2/3):深入理解C++中的类成员函数
  • javaWeb学习04
  • Day07:基础入门-抓包技术全局协议封包监听网卡模式APP小程序PC应用
  • 通过elementUI学习vue