命名空间
变体
操作

std::basic_regex

来自 cppreference.cn
< cpp‎ | regex
 
 
 
正则表达式库
basic_regex
(C++11)
(C++11)
算法
迭代器
异常
特性
常量
(C++11)
正则表达式语法
 
 
在头文件 <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

[编辑] 成员函数

构造 regex 对象
(public member function) [编辑]
析构 regex 对象
(public member function) [编辑]
赋值内容
(public member function) [编辑]
赋值内容
(public member function) [编辑]
观察器
返回正则表达式中被标记的子表达式的数量
(public member function) [编辑]
返回语法标志
(public member function) [编辑]
区域设置
获取区域设置信息
(public member function) [编辑]
设置区域设置信息
(public member function) [编辑]
修改器
交换内容
(public member function) [编辑]

常量

语法选项 效果
ECMAScript 使用 Modified 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 算法
(function template) [编辑]

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