正则表达式是文本处理的强大工具,C++通过多种框架和库提供了对正则表达式的完整支持。本文将详细介绍C++中处理正则表达式的常用方法。
C++11标准引入了
#include
#include
int main() {
std::string str = "Hello 2023 World";
std::regex pattern("\\d+"); // 匹配数字
if(std::regex_search(str, pattern)) {
std::cout << "找到数字" << std::endl;
}
return 0;
}
Boost.Regex是功能更强大的正则表达式库,支持更复杂的模式:
#include
bool validate_email(const std::string& email) {
boost::regex pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}");
return boost::regex_match(email, pattern);
}
PCRE库提供了与Perl兼容的正则表达式语法:
#include
void pcre_example() {
const char* pattern = "^(\\d{4})-(\\d{2})-(\\d{2})$";
const char* subject = "2023-05-15";
pcre* re = pcre_compile(pattern, 0, &error, &erroffset, NULL);
// 执行匹配...
}
选择正则表达式库时,应考虑项目需求、性能要求和开发便利性。标准库