1. 正则表达式语言 ECMAScript

  • 模式[ [::alpha: ] ] 匹配任意字母
  • 符号+和*分别表示我们希望“ 一个或多个” 或“ 零个或多个” 匹配。

2. 指定 regex 对象的选项

当我们定义一个 regex 或是对一个 regex 调用 assign 为其赋予新值时, 可以指定一些标志来影响 regex 如何操作。 这些标志控制 regex 对象的处理过程。

当定义一个regex或是对一个regex调用assign为其赋予新值时,可以指定其标志。

2.1 regex(和wregex)选项

  • 最后 6 个标志指出编写正则表达式所用的语言。 对这 6 个标志, 我们必须设置其中之一,且只能设置一个。

  • 默认情况下, ECMAScript 标志被设置, 从而 regex 会使用 ECMA-262规范, 这也是很多 Web 浏览器所使用的正则表达式语言。

操作 描述
regex r(re) re表示一个正则表达式,可以是一个string、一个表示字符范围的迭代器对
regex r(re, f) 一个指向空字符结尾的字符数组的指针等。f是指出对象如何处理的标志。
r1 = re 将r1中的正则表达式替换为re,re表示一个正则表达式,可以是另一个regex对象、一个string、一个指向空字符结尾的字符数组的指针或是一个花括号包围的字符列表
r1.assign(re,f) 与使用赋值运算符(=)效果相同;可选的标志f也与regex的构造函数中对应的参数含义相同
r.mark_count() r中子表达式的数目
r.flags() 返回r的标志集

2.2 定义regex时指定的标志

定义在regexregex_constants::syntax_option_type

标志符 说明
icase 在匹配过程中忽略大小写
nosubs 不保存匹配的子表达式
optimize 执行速度优先于构造速度
ECMAScript 使用ECMA-262指定的语法
basic 使用POSIX基本的正则表达式
extended 使用POSIX扩展的正则表达式
awk 使用POSIX版本的awk语言的语法
grep 使用POSIX版本的grep语言的语法
egrep 使用POSIX版本的egrep语言的语法

使用icase标志来查找具有特定扩展名的文件名,其示例如下:

//正则表达式[^c]表明我们希望匹配任意不是c的字符,而[^c]ei指出希望匹配这种字符后接ei的字符串。
//一个或多个字母或数字字符后接一个'.'再接"cpp"或"cxx"或"cc"
regex r("[[:alnum:]] + \\.(cpp|cxx|cc)$", regex::icase);
smatch results;
string filename;
while (cin >> filename)if (regex_search(filename, results, r))cout << results.str() << endl;    //打印匹配结果

C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式相关推荐

  1. C++ Primer 5th笔记(chap 17 标准库特殊设施)流随机访问

    1. 流类型通常都支持对流中数据的随机访问. 可以重定位流, 使之跳过一些数据, 首先读取最后一行, 然后读取第一行, 依此类推. 1.1 标准厍提供了一对函数, 来定位( seek )到流中给定的位 ...

  2. C++ Primer 5th笔记(chap 17 标准库特殊设施)多字节低层IO操作

    1. 多字节操作 一些未格式化 IO 操作一次处理大块数据,这些操作要求我们自己分配并管理用来保存和提取数据的字符数组 操作 解释 is.get(sink, size, delim) 从is中读取最多 ...

  3. C++ Primer 5th笔记(chap 17 标准库特殊设施)未格式化的输入/输出操作

    1. 格式化IO 输入和输出运算符(<< 和>>)根据读取或写入的数据类型来格式化它们. 输入运算符忽略空白符 输出应用补白 精度等规则操作 2. 未格式化 IO (unfor ...

  4. C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符

    1. 控制浮点数格式 可以控制浮点数输出三个种格式 • 以多高精度( 多少个数字) 打印浮点值 • 数值是打印为十六进制. 定点十进制还是科学记数法形式 • 对于没有小数部分的浮点值是否打印小数点 1 ...

  5. C++ Primer 5th笔记(chap 17 标准库特殊设施)匹配标志

    1. 用来控制匹配和格式的标志 标准库还定义了用来在替换过程中控制匹配或格式的标志,这些标志可以传递给函数 regex_search 或 regex_match 或是类 smatch 的 format ...

  6. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式类和输入序列类型

    1. 多种类型的输入 可以搜索多种类型的输入序列. RE 库为这些不同的输入序列类型都定义了对应的类型,eg. 普通 char 数据.wchar_t 数据 字符可以保存在标准库string或是 cha ...

  7. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式错误

    1. 指定或使用正则表达式时的错误 如果我们编写的正则表达式存在错误, 则在运行时标准库会抛出一个类型为regex 的异常 eg. try {// alnum右括号少了一个, 构造函数会抛出异常reg ...

  8. C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型

    1. 提取 bitset 的值 函数返回一个值,保存了与bitset 对象相同的位模式. to_ulong() // 返回unsigned long to_ullong() //返回unsigned ...

  9. C++ Primer 5th笔记(chap 17 标准库特殊设施)随机数

    1. 场景: rand 生成随机数 此函数生成均匀分布的伪随机整数, 每个随机数的范围在 0 和一个系统相关的最大值( 至少为 32767) 之间. 1.1 问题: 一些应用需要随机浮点数. 一些程序 ...

  10. C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 类型

    1. 定义 将一些数据组合成单一对象(类似pair) tuple支持的操作 操作 解释 tuple<T1, T2, -, Tn> t; t是一个tuple,成员数为n,第i个成员的类型是T ...

最新文章

  1. 独家 | 用pandas-profiling做出更好的探索性数据分析(附代码)
  2. 100W无线充电方案文献调研 - 信息HUB
  3. 关于MGS4和XSI
  4. 对南昌杀人案的一些看法
  5. java简单投票系统_JSP实现的简单Web投票程序代码
  6. 化工图纸中LISP_化工设备厂参展模型设计制作
  7. 超前进位加法器实验报告_干货 | 加法器与反相加法器原理解析
  8. swift属性观察者机智
  9. linux的shell键盘输入,linux shell获取键盘输入
  10. Sitecore 6.4 升级Sitecore 8.2.7准备
  11. php有哪些优化技巧
  12. Hive几种导出数据方式
  13. 使用PS创造非凡动物形象
  14. 【优化算法】冠状病毒群体免疫优化算法(CHIO)【含Matlab源码 186期】
  15. 身份证前6位对应的省市区县
  16. BZOJ 1127: [POI2008]KUP 最大子矩阵
  17. 锤子android悬浮菜单,锤子手机Smartisan T1悬浮菜单怎么添加
  18. Linux下安装并运行TMHMM
  19. 吊炸天MyCat入门
  20. PTA - 数据库合集27

热门文章

  1. Android --- View.inflate()的详细介绍
  2. Null return value from advice does not match primitive return type for: public abstract boolean
  3. Java 洛谷 P1219 八皇后
  4. 什么是超融合数据中心网络?
  5. php drive mssql,PHP 连接 MSSQL 2005/2008 以UTF8存取 并让ADODB支持的安装设置
  6. 编程笔试(解析及代码实现):求不重复数字之和​​​​​​​给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次。请写出程序求出这两个只出现了一次的数字之和
  7. AI:人工智能实践六大场景(金融信用违约、反欺诈模型、客户偏好洞察、智能推荐、精准营销、客户流失管理)及其对应常用机器学习算法经验总结(不断更新)
  8. AI:2020年6月21日北京智源大会演讲分享之09:20-09:40黄铁军教授《智源进展报告》
  9. 成功解决基于VS2015(Visual Studio2015)编写C++程序调试时弹出窗口一闪而过的问题
  10. Matlab:成功解决Function definition are not permitted at the prompt or scripts