cpp11的std::regex
时间: 2023-05-31 14:03:27 浏览: 115
std::regex是C++11标准库中新增的正则表达式库。它提供了一种基于正则表达式的字符串匹配和替换方法,可以用于文本处理、搜索和替换等场景。
使用std::regex需要包含头文件<regex>。它定义了一个名为std::regex的类,表示一个正则表达式对象。可以使用如下方式创建一个正则表达式对象:
std::regex reg("pattern");
其中,pattern是正则表达式的字符串表示。创建好正则表达式对象后,可以使用它的成员函数进行匹配和替换操作。
std::regex提供了多种匹配方式,包括:
- std::regex_match:完全匹配整个字符串,匹配成功返回true,否则返回false。
- std::regex_search:在字符串中搜索匹配项,匹配成功返回true,否则返回false。
- std::regex_replace:替换字符串中的匹配项。
std::regex的语法和其他正则表达式库基本相同,支持的语法包括元字符、字符集、量词、分组等。例如,可以使用如下正则表达式匹配一个邮箱地址:
std::regex reg("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}");
在实际使用中,std::regex还提供了一些方便的辅助函数,例如std::regex_replace可以接受一个lambda表达式作为替换函数,这样可以更方便地进行复杂的替换操作。
总之,std::regex是一个非常强大的正则表达式库,可以方便地进行字符串匹配和替换操作,是C++11标准库中的重要组成部分。
阅读全文