C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型相关的知识,希望对你有一定的参考价值。
1. 多种类型的输入
-
可以搜索多种类型的输入序列。 RE 库为这些不同的输入序列类型都定义了对应的类型,eg. 普通 char 数据、wchar_t 数据
-
字符可以保存在标准库string或是 char 数组中( 或是宽字符版本, wchar string 或 wchar_t 数组中)
-
RE 库类型必须与输入序列类型匹配
regex r("[[:alnum:]]+\\\\.(cpp|cxx|cc)$", regex::icase);
smatch results; // 将匹配string输入序列,而不是char*
if (regex_search("myfile.cc", results, r)) // 错误:输入为char*
cout << results.str() << endl; // 打印匹配结果
因为 match 参数的类型与输入序列的类型不匹配。 如果我们希望搜索一个字符数组, 就必须使用 cmatch 对象:
cmatch results; / / 将匹配字符数组输入序列
if (regex_search("myfile •cc", results, r) )
cout « results.str ( ) << endl; // 打印当前匹配
1.1 正则表达式库
若输入序列类型 则使用正则表达式类
输入类型 | 正则表达式类 |
---|---|
string | regex、smatch、ssub_match和sregex_iterator |
const char* | regex、cmatch、csub_match和cregex_iterator |
wstring | wregex、wsmatch、wssub_match和wsregex_iterator |
const wchar_t* | wregex、wcmatch、wcsub_match和wcregex_iterator |
以上是关于C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型
C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值