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 起)