std::basic_regex

来自cppreference.com
< 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 Traits
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 指示正则表达式引擎进行更快的匹配,带有令构造变慢的潜在开销。例如这可能表示将非确定有限状态机转换为确定有限状态机。
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_constantssyntax_option_type 常量的重复。

[编辑] 非成员函数

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

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