Namespaces
Variants

std:: basic_regex

From zh.cppreference.net
Regular expressions library
Classes
basic_regex
(C++11)
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
定义于头文件 <regex>
template <

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

> class basic_regex ;
(C++11 起)

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

提供了多种常见字符类型的类型定义:

定义于头文件 <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中带 -E 选项的 grep 工具使用的正则表达式语法。这实际上等同于 extended 选项,但额外将换行符 ' \n ' 作为 '|' 之外的备选分隔符。
语法变体 效果
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 起)