C++中使用正则需包含<regex>头文件,支持regex_match(全匹配)、regex_search(搜索)和regex_replace(替换)。示例:用regex_match验证邮箱格式,regex_search提取文本中的数字,regex_replace替换空格或隐藏手机号中间四位。常用语法包括d、w、s及捕获组$1等。

C++ 使用正则表达式主要依赖于标准库中的 <regex> 头文件。从 C++11 开始,std::regex 提供了对正则表达式的完整支持,包括匹配、搜索、替换和迭代等功能。下面介绍如何进行正则表达式的基本匹配与替换操作。
#include <regex>
同时建议使用 std 命名空间或显式加上 std:: 前缀:
using namespace std;
示例:验证一个字符串是否为合法的邮箱格式(简化版)
regex pattern(R"(^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$)");
string email = "test@example.com";
if (regex_match(email, pattern)) {
cout << "邮箱格式正确" << endl;
} else {
cout << "邮箱格式错误" << endl;
}
示例:从文本中提取所有数字
立即学习“C++免费学习笔记(深入)”;
string text = "订单编号:12345,价格:678元";
regex digits("\d+");
smatch match; // 用于保存匹配结果
while (regex_search(text, match, digits)) {
cout << "找到数字:" << match[0] << endl;
text = match.suffix(); // 更新剩余字符串继续查找
}
示例:将多个空格替换为单个空格
string input = "a b c";
regex space_re("\s+");
string result = regex_replace(input, space_re, " ");
cout << result; // 输出: a b c
另一个例子:隐藏手机号中间四位
string phone = "13812345678";
regex phone_mask("(\d{3})\d{4}(\d{4})");
string hidden = regex_replace(phone, phone_mask, "$1****$2");
cout << hidden; // 输出: 138****5678
基本上就这些。C++ 的 regex 功能足够应对大多数文本处理需求,虽然性能不如某些专用库,但标准库支持使其易于移植和使用。
以上就是c++++怎么使用正则表达式_c++ regex正则表达式匹配与替换的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号