std::basic_regex

来自cppreference.com
< cpp‎ | regex
定义于头文件 <regex>
template <

    class CharT,
    class Traits = std::regex_traits<CharT>

> class basic_regex;
(C++11 起)

类模板 basic_regex 提供保有正则表达式的通用框架。

提供对于常见类型的几个特化:

定义于头文件 <regex>
类型 定义
regex basic_regex<char>
wregex basic_regex<wchar_t>

成员类型

成员类型 定义
value_type CharT
traits_type Traits
string_type Traits::string_type
locale_type Traits::locale_type
flag_type std::regex_constants::syntax_option_type

成员函数

构造 regex 对象
(公开成员函数)
析构 regex 对象
(公开成员函数)
赋值内容
(公开成员函数)
赋值内容
(公开成员函数)
观察器
返回正则表达式中有标记的子表达式数量
(公开成员函数)
返回语法标志
(公开成员函数)
本地环境
获取本地环境信息
(公开成员函数)
设置本地环境信息
(公开成员函数)
修改器
交换内容
(公开成员函数)

常量

效果
icase 应当以不考虑大小写进行字符匹配。
nosubs 进行匹配时,将所有被标记的子表达式 (expr) 当做非标记的子表达式 (?:expr) 。不将匹配存储于提供的 std::regex_match 结构中,且 mark_count() 为零
optimize 指示正则表达式引擎进行更快的匹配,带有令构造变慢的潜在开销。例如这可能表示将非确定 FSA 转换为确定 FSA 。
collate 形如 "[a-b]" 的字符范围将对本地环境敏感。
multiline (C++17) 若选择 ECMAScript 引擎,则指定 ^ 应该匹配行首,而 $ 应该匹配行尾。
ECMAScript 使用改 ECMAScript 正则表达式文法
basic 使用基本 POSIX 正则表达式文法(文法文档)。
extended 使用扩展 POSIX 正则表达式文法(文法文档)。
awk 使用 POSIX 中 awk 工具所用的正则表达式文法(文法文档)。
grep 使用 POSIX 中 grep 工具所用的正则表达式文法。这等效于 basic 选项附带作为另一种分隔符的换行符 '\n' 。
egrep 使用 POSIX 中 grep 工具带 -E 选项所用的正则表达式文法。这等效于 extended 附带 '|' 之外的作为另一种分隔符的换行符 '\n' 。

ECMAScript, basic, extended, awk, grep, egrep 必须选取至多一个文法选项。若不选取文法选项,则设定为选取 ECMAScript 。其他选项作为修饰符工作,从而 std::regex("meow", std::regex::icase) 等价于 std::regex("meow", std::regex::ECMAScript|std::regex::icase)

basic_regex 中的成员常量是定义于命名空间 std::regex_constantssyntax_option_type 常量的副本。

非成员函数

特化 std::swap 算法
(函数模板)

推导指引(C++17 起)