命名空间
变体
操作

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

[编辑] 成员函数

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

常量

语法选项 效果
ECMAScript 使用修改后的 ECMAScript 正则表达式语法。
basic 使用基本 POSIX 正则表达式语法 (语法文档)。
extended 使用扩展 POSIX 正则表达式语法 (语法文档)。
awk 使用 POSIX 中 awk 工具使用的正则表达式语法 (语法文档)。
grep 使用 POSIX 中 grep 工具使用的正则表达式语法。这实际上与 basic 选项相同,但增加了换行符作为选择分隔符。
egrep 使用 POSIX 中带有 -E 选项的 grep 工具使用的正则表达式语法。这实际上与 extended 选项相同,但除了 '|' 之外,还增加了换行符作为选择分隔符。
语法变体 效果
icase 字符匹配应不区分大小写执行。
nosubs 执行匹配时,所有标记的子表达式 `(expr)` 都被视为非标记子表达式 `(?:expr)`。 不会将匹配项存储在提供的 std::regex_match 结构中,且 mark_count() 为零。
optimize 指示正则表达式引擎加快匹配速度,但可能会以降低构造速度为代价。 例如,这可能意味着将非确定性 FSA 转换为确定性 FSA。
collate 形如 '[a-b]' 的字符范围将对本地环境敏感。
multiline (C++17) 指定如果选择了 ECMAScript 引擎,`^` 应匹配行首,`$` 应匹配行尾。

在 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_constants 中定义的 syntax_option_type 常量的副本。

[编辑] 非成员函数

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

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