在 Linux 中,C++ 使用 <regex> 库来处理正则表达式。<regex> 库是在 C++11 中引入的,因此需要确保编译器支持 C++11 或更高版本。
下面是一个简单的示例,演示了如何在 C++ 中使用正则表达式:
#include <iostream> #include <regex> #include <string> int main() { std::string text = "Hello, my email is example@example.com and my phone number is 123-456-7890."; std::regex email_regex(R"((\w+@\w+\.\w+))"); std::regex phone_regex(R"((\d{3}-\d{3}-\d{4}))"); std::smatch matches; // 查找电子邮件地址 if (std::regex_search(text, matches, email_regex)) { std::cout << "Found email: " << matches[0] << std::endl; } else { std::cout << "No email found." << std::endl; } // 查找电话号码 if (std::regex_search(text, matches, phone_regex)) { std::cout << "Found phone number: " << matches[0] << std::endl; } else { std::cout << "No phone number found." << std::endl; } return 0; } 要编译此代码,请确保使用 -std=c++11 标志,例如:
g++ -std=c++11 main.cpp -o main 然后运行生成的可执行文件:
./main 这将输出:
Found email: example@example.com Found phone number: 123-456-7890 在这个示例中,我们使用了两个正则表达式:一个用于匹配电子邮件地址,另一个用于匹配电话号码。我们使用 std::regex_search 函数在文本中查找与正则表达式匹配的子字符串。如果找到匹配项,它将存储在 std::smatch 对象中,我们可以从中提取匹配的文本。