boost深入剖析之使用技巧 第五讲.ppt
文本预览下载声明
《boost深入剖析之使用技巧》 第五讲:boost 正则表达式库 主讲人:步磊峰 UIPower 3D界面引擎负责人 第一节: 什么是xpressive库 * 1、是一个正则表达式模板库 2、可以以字符串方式编写并在运行期进行动态的分析(动态regexes) 3、或者作为表达式模板方式编写并在编译期进行分析(静态regexes) 4、动态regexes的优点在于,它们可以在运行期从用户的输入中获得,或者是从一个初始化文件中读取 5、静态regexes的优点在于以C++表达式而不是字符串进行表示,因此在编译期进行语法检查,可以在正则表达 式匹配时回调。由于是静态绑定,运行效率更高 6、本教程仅关注xpressive动态标示 第二节: xpressive头文件 * xpressive提供动态和静态两种使用方式 如果想混用两种方式或不关心这两种方式 则 #include boost/xpressive/xpressive.hpp 如果仅想使用静态方式 则 #include boost/xpressive/xpressive_static.hpp 如果仅想使用动态方式 则 #include boost/xpressive/xpressive_dynamic.hpp 引入名字空间 using namespace boost::xpressive; 第三节: xpressive工具箱 * 第四节: typedef与iterator类型 * 第五节: basic_regex类概要 * templatetypename BidiIter class basic_regex { regex_id_type regex_id() const; //用于判断是否已经编译,使用flyweight设计模式 std::size_t mark_count() const; //子表达式的个数 static basic_regex compile(InputRange const pat) //静态工厂函数 } ; 第六节: 匹配和查找全局函数 * 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); 第七节:match_results 和 sub_match * 第八节: 正则表达式规则 * 常用的元字符、 表一 第八节: 正则表达式规则 * 常用的元字符、 表二
显示全部