类模板
<regex>

std::basic_regex

template <class charT, class traits = regex_traits<charT> > class basic_regex;
正则表达式
一个正则表达式是一个对象,它定义了一个特定的模式,通过标准的regex库工具与之匹配字符序列。

这些对象本质上是由一串字符构建的,其中可以包含几个通配符和约束,以定义一组规则(模式),这些规则使得字符序列符合匹配。默认情况下,regex模式遵循ECMAScript语法

basic_regex对象不直接通过其任何成员进行匹配。相反,它们被用作regex算法regex_matchregex_searchregex_replace)和regex迭代器适配器regex_iteratorregex_token_iterator)的参数,这些算法和适配器在构造时使用指定的规则执行这些匹配。basic_regex对象。

这个基本类有两个实例化存在于标准头文件<regex>对于最常见的情况
1
2
typedef basic_regex<char>    regex;
typedef basic_regex<wchar_t> wregex;

模板参数

charT
字符类型。
特性 (traits)
regex操作在此对象上使用的regex traits
这可以是regex_traits类模板的实例化,也可以是具有相同成员的自定义类。

sub_match for string literals (class)


成员类型

以下别名是basic_regex的成员类型。它们被成员函数广泛用作参数和返回类型。

成员类型定义说明
value_type第一个模板参数 (charT)字符类型。
traits_type第二个模板参数 (特性 (traits))<char>Regex traits(默认为regex_traits)。
string_typetraits::string_type字符串类型(对于regexstring,对于wregexwstring)。
flag_typeregex_constants::syntax_option_type
locale_typetraits::locale_type对于标准regex_traitslocale

成员函数


赋值


常量操作


Locale


交换


非成员函数


成员常量

这些成员常量是regex_constants命名空间下同名常量的别名(有关更多详细信息,请参阅regex_constants)。std::regex_constants命名空间(有关更多详细信息,请参阅regex_constants)。
flag*对语法的影响备注
icase不区分大小写正则表达式匹配时忽略大小写。
nosubs无子表达式要放回的字符的match_results结构将不包含子表达式匹配。
optimize优化匹配优先匹配效率,而不是构造 regex 对象的效率。
collate语言环境敏感性字符范围,例如"[a-b]"受语言环境影响。
ECMAScriptECMAScript 语法正则表达式遵循以下六种语法之一。
位掩码需要设置这六种语法标志中的一个(且仅一个)才能具有有效值。
basic基本 POSIX 语法
extended扩展 POSIX 语法
awkAwk POSIX 语法
grepGrep POSIX 语法
egrepEgrep POSIX 语法


另见