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 正则表达式库

若输入序列类型 则使用正则表达式类

输入类型正则表达式类
stringregex、smatch、ssub_match和sregex_iterator
const char*regex、cmatch、csub_match和cregex_iterator
wstringwregex、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 返回多个值

C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式

C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作