命名空间
变体
操作

std::basic_regex

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

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

> class basic_regex;
(自 C++11 起)

类模板 basic_regex 提供了一个用于保存正则表达式的通用框架。

提供了几个用于常见字符类型的 typedef

在头文件 <regex> 中定义
类型 定义
std::regex std::basic_regex<char>
std::wregex std::basic_regex<wchar_t>

内容

[编辑] 成员类型

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

[编辑] 成员函数

构造正则表达式对象
(公共成员函数) [编辑]
析构正则表达式对象
(公共成员函数) [编辑]
分配内容
(公共成员函数) [编辑]
分配内容
(公共成员函数) [编辑]
观察者
返回正则表达式中标记的子表达式的数量
(公共成员函数) [编辑]
返回语法标志
(公共成员函数) [编辑]
区域设置
获取区域设置信息
(公共成员函数) [编辑]
设置区域设置信息
(公共成员函数) [编辑]
修改器
交换内容
(公共成员函数) [编辑]

常量

语法选项 效果
ECMAScript 使用 修改后的 ECMAScript 正则表达式语法.
basic 使用基本 POSIX 正则表达式语法 (语法文档).
extended 使用扩展的 POSIX 正则表达式语法 (语法文档).
awk 使用 POSIX 中 awk 实用程序使用的正则表达式语法 (语法文档).
grep 使用 POSIX 中 grep 实用程序使用的正则表达式语法。这与 basic 选项基本相同,只是增加了换行符 '\n' 作为替换分隔符。
egrep 使用 POSIX 中 grep 实用程序(使用 -E 选项)使用的正则表达式语法。这与 extended 选项基本相同,只是增加了换行符 ''\n' 作为替换分隔符,以及 '|'
语法变体 效果
icase 字符匹配应不区分大小写。
nosubs 执行匹配时,所有标记的子表达式 (expr) 将被视为非标记子表达式 (?:expr)。不会在提供的 std::regex_match 结构中存储任何匹配项,并且 mark_count() 为零。
optimize 指示正则表达式引擎使匹配速度更快,但可能导致构建速度变慢。例如,这可能意味着将非确定性 FSA 转换为确定性 FSA。
collate 形式为 "[a-b]" 的字符范围将对区域设置敏感。
multiline (C++17) 指定如果选择了 ECMAScript 引擎,则 ^ 将匹配行首,$ 将匹配行尾。

最多只能从 ECMAScriptbasicextendedawkgrepegrep 中选择一个语法选项。如果没有选择语法,则假定选择 ECMAScript。其他选项充当变体,因此 std::regex("meow", std::regex::icase) 等效于 std::regex("meow", std::regex::ECMAScript|std::regex::icase)

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

[编辑] 非成员函数

专门化 std::swap 算法
(函数模板) [编辑]

[编辑] 推导指南(自 C++17 起)