Namespaces
Variants

std:: basic_regex

From 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 起)