发布于2026-07-16 阅读(0)
扫一扫,手机访问
在C++的Linux开发环境中,正则表达式处理一直是个让人又爱又恨的话题。C++11引入的库,算是终于把这个短板补齐了。下面就来聊聊实际怎么用,顺便给个能跑起来的例子。

先确认一下编译器环境。既然要用,编译器必须支持C++11或更高版本。编译时记得加上-std=c++11(或更高版本)标志,这一步不能省。比如用g++的话,命令像这样:
g++ -std=c++11 main.cpp -o main
接下来,新建一个main.cpp文件,把下面这段代码写进去:
#include
#include
#include
int main() {
// 定义一个正则表达式,用来匹配电子邮件地址
std::regex email_regex(R"((\w+)(\.\w+)*@(\w+)(\.\w+)+)");
// 待搜索的文本
std::string text = "Please contact us at email@example.com for further information.";
// 使用std::sregex_iterator进行迭代匹配
auto begin = std::sregex_iterator(text.begin(), text.end(), email_regex);
auto end = std::sregex_iterator();
// 遍历并输出所有匹配项
for (std::sregex_iterator i = begin; i != end; ++i) {
std::smatch match = *i;
std::cout << "Found email: " << match.str() << std::endl;
}
return 0;
}
这段代码的逻辑很清楚:先构造一个std::regex对象,里面装着用来匹配邮箱的正则表达式;然后通过std::sregex_iterator在目标文本里查找所有匹配项,最后逐个输出到控制台。
编译完成后,运行程序:
./main
输出结果应该就是这样:
Found email: email@example.com
当然了,这只是一个热身示例。库远不止匹配这么简单,它还支持替换、分割字符串等操作,功能相当强大。如果想深入挖掘,最好的办法还是去翻翻C++的官方文档,那里有更完整的API说明和用法示例。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8