新闻中心
c++中如何使用正则表达式(std::regex)_regex的基本语法与匹配操作示例
std::regex是C++中用于正则表达式的标准库工具,提供regex_match全匹配、regex_search子串搜索、regex_replace替换及捕获组提取功能,需包含头文件,支持常用正则语法,建议使用较新GCC或Clang版本以确保兼容性。

在C++中,std::regex 是标准库中用于处理正则表达式的工具,定义在
包含头文件与基本组件
使用 std::regex 需要包含头文件:
主要类包括:
- std::regex:编译后的正则表达式对象
- std::smatch:用于存储字符串匹配结果(std::string 版本)
- std::regex_match:判断整个字符串是否匹配模式
- std::regex_search:在字符串中查找符合模式的子串
- std::regex_replace:替换匹配到的内容
regex_match:完全匹配
std::regex_match 要求整个字符串完全符合正则表达式模式。
示例:验证一个简单的数字字符串
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string text = "12345";
std::regex pattern(R"(\d+)"); // 匹配一个或多个数字
if (std::regex_match(text, pattern)) {
std::cout << "完全匹配成功\n";
} else {
std::cout << "不匹配\n";
}
return 0;
}
输出:
完全匹配成功若 text 为 "abc123",则不会匹配,因为不是全由数字组成。
regex_search:查找子串匹配
std::regex_search 用于在字符串中查找是否存在符合模式的子串。
示例:从文本中查找第一个数字序列
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string text = "我的电话是 123456789,记得哦!";
std::regex pattern(R"(\d+)");
std::smatch match;
if (std::regex_search(text, match, pattern)) {
std::cout << "找到数字: " << match.str() << "\n";
}
return 0;
}
输出:
找到数字: 123456789match 是一个 smatch 对象,match.str() 返回匹配的子串。
Whimsical
Whimsical推出的AI思维导图工具
182
查看详情
提取分组信息
使用括号 () 可以定义捕获组,提取特定部分。
示例:提取日期中的年月日
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string date = "2025-04-05";
std::regex pattern(R"((\d{4})-(\d{2})-(\d{2}))");
std::smatch match;
if (std::regex_match(date, match, pattern)) {
std::cout << "年: " << match[1] << "\n";
std::cout << "月: " << match[2] << "\n";
std::cout << "日: " << match[3] << "\n";
}
return 0;
}
输出:
年: 2025月: 04
日: 05
match[0] 是完整匹配,match[1], match[2], match[3] 对应各捕获组。
regex_replace:替换匹配内容
std::regex_replace 将匹配的部分替换为指定字符串。
示例:将所有连续空格替换为单个空格
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string text = "a b c";
std::regex pattern(R"( +)");
std::string result = std::regex_replace(text, pattern, " ");
std::cout << result << "\n"; // 输出: a b c
return 0;
}
也可以结合捕获组进行复杂替换:
std::string name = "John Doe"; std::regex name_pattern(R"((\w+) (\w+))"); std::string reversed = std::regex_replace(name, name_pattern, "$2, $1"); // 结果: "Doe, John"
$1, $2 分别引用第一、第二个捕获组。
基本上就这些常用操作。std::regex 支持大多数常见正则语法,如 \d, \w, *, +, ?, ., ^, $ 等。注
意不同编译器对正则的支持程度略有差异,建议使用较新版本的 GCC 或 Clang 以获得更好兼容性。
以上就是c++++中如何使用正则表达式(std::regex)_regex的基本语法与匹配操作示例的详细内容,更多请关注其它相关文章!
# 正则表达式
# 工具
# ai
# ios
# stream
# c++
# 玉环关键词seo排名
# 上海网站推广找哪家好
# 郑州图文营销推广公司
# 邳州推广短视频营销系统
# 兰州seo公司选择火星
# 企业智能营销推广概况怎么写
# seo 难学吗
# 南头一般网站建设
# 正在建设中的英文网站
# 濮阳网站建设完全教程
# 互斥
# 内存管理
# 是一个
# 如何用
# 更快
# 如何使用
# 头文件
# 进阶
# 如何实现
# 标准库
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
移动端XML文件怎么转换成Excel 手机和平板上的解决方案
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南
HTML长属性值处理:表单action路径优化与代码规范应对
Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性
深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
css链接悬停下划线样式如何自定义_使用::after结合content和transition
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化
网易大神怎么保存别人动态的图片_网易大神动态图片保存方法
Mac终端命令大全_Mac常用Terminal指令速查
服务端验证_j*ascript输入检查
2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南
Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】
绝地鸭卫平a核爆刀流玩法攻略
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
照顾宝贝2小游戏免费秒玩入口
poki网页游戏推荐_poki免费游戏平台入口
钉钉视频会议画面卡顿如何解决 钉钉会议画面优化方法
React项目中导航栏Logo自适应布局:避免裁剪与布局溢出
Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择
UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
j*a toString()的覆盖
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡
处理嵌套交互式控件:前端可访问性指南
可靠CSGO开箱平台解析 CSGO开箱网合集
韩小圈电脑版在线入口_网页版免费登录地址
邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧
创客贴用户入口官网登录 创客贴网页版电脑版系统
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址
在WordPress中通过REST API获取BasicAuth保护的远程文章
React Router 嵌套组件中 URL 重定向问题的解决方案
微信群消息显示延迟如何解决 微信群消息刷新优化方法
深入理解J*a链表中的IPosition接口与使用
动漫岛观看全网网 动漫岛在线正版动漫入口
Go语言中Map值调用指针接收器方法的限制与应对
Go语言中JSON数据解析与字段访问教程
一加 14R 快充无反应_一加 14R 充电优化
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
优化大型XML文件解析:基于Python流式处理的内存高效方案
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧
windows10怎么查看本机ip_windows10命令提示符ipconfig使用


2025-11-18
浏览次数:次
返回列表