boost深入剖析之使用技巧第五讲资料

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《boost深入剖析之使用技巧》
第五讲:boost 正则表达式库
主讲人:步磊峰 UIPower 3D界面引擎负责人
第一节: 什么是xpressive库
1、是一个正则表达式模板库 2、可以以字符串方式编写并在运行期进行动态的分析(动态regexes) 3、或者作为表达式模板方式编写并在编译期进行分析(静态regexes) 4、动态regexes的优点在于,它们可以在运行期从用户的输入中获得,或者是从一个初始化文件中读取 5、静态regexes的优点在于以C++表达式而不是字符串进行表示,因此在编译期进行语法检查,可以在正则表达
3
第三节: xpressive工具箱
4
第四节: typedef与iterator类型
5
第五节: basic_regex类概要
template<typename BidiIter> class basic_regex {
regex_id_type regex_id() const;
//用于判断是否已经编译,使用flyweight设计模式
式匹配时回调。由于是静态绑定,运行效率更高 6、本教程仅关注xpressive动态标示
2
第二节: xpressive头文件
xpressive提供动态和静态两种使用方式 如果想混用两种方式或不关心这两种方式 则 #include <boost/xpressive/xpressive.hpp> 如果仅想使用静态方式 则 #include <boost/xpressive/xpressive_static.hpp> 如果仅想使用动态方式 则 #include <boost/xpressive/xpressive_dynamic.hpp> 引入名字空间 using namespace boost::xpressive;
8
第八节: 正则表达式规则
常用的元字符、 表一
9
第八节: 正则表达式规则
常用的元字符、 表二
10
第八节: 正则表达式规则
常用的元字符、 表三
11
第九节:正则表达式匹配例子
1、 c/c++中的浮点数
12
第九节:正则表达式匹配例子
2、 身份证号码验证 身份证号码规则: (33|0424|)(2001|04|28|)(01|0|X) 1)、前六位代表区域码,其中33代表省份浙江 2)、第七位到十四位表示出生年月日 3)、17位代表性别 4)、18位代表验证码 我们要验证身份证号码的准确性并抽取出出生省份,出生年月日,性别以及验证码。
std::size_t mark_count() consຫໍສະໝຸດ Baidu; //子表达式的个数
static basic_regex compile(InputRange const& pat) //静态工厂函数 };
6
第六节: 匹配和查找全局函数
1、 匹配全局函数 bool regex_match(String str, basic_regex const& re); bool regex_match(String str, match_results& what, basic_regex const& re);
2、 查找全局函数 bool regex_search(String str, basic_regex const& re); bool regex_search(String str, match_results& what, basic_regex const& re);
7
第七节:match_results 和 sub_match
第三节:xpressive工具 第六节:匹配与查找函数 第九节 : 正则表达式匹配例子
14
13
结束语
• 本讲回顾
第一节:什么是xpressive
第二节:xpressive头文件
第四节:typedef与iterator类型
第五节:basic_regex类概要
第七节:match_results和sub_match 第八节:正则表达式规则
• 下一讲预告
boost库暂时告一段落,下一讲我们关注面向对象方面的编程
相关文档
最新文档