C++ 正则表达式的使用与解析
1. 正则表达式概述
正则表达式有多种版本,C++ 标准库支持其中六种:ECMAScript、基本 POSIX、扩展 POSIX、awk、grep 和 egrep(带 -E 选项的 grep)。默认使用的语法是 ECMAScript,如果要使用其他语法,需要在定义正则表达式时明确指定。此外,还可以指定解析选项,例如忽略大小写进行匹配。
标准库提供了多个类和算法,主要类如下:
| 类模板 | 描述 | 别名示例 |
| ---- | ---- | ---- |
| std::basic_regex
| 定义正则表达式对象 | typedef basic_regex<char> regex; typedef basic_regex<wchar_t> wregex;
|
| std::sub_match
| 表示匹配捕获组的字符序列,派生自 std::pair
| typedef sub_match<const char *> csub_match;
等 |
| std::match_results
| 匹配结果的集合,第一个元素是目标的完全匹配,其他元素是子表达式的匹配 | typedef match_results<const char *> cmatch;
等 |
标准库中的算法有:
- std::regex_match(