下载此文档

regex学习以及例子.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
四:regex_match例子代码学****1我们经常会看一个字符串是不是合法的IP地址,合法的IP地址需要符合以下这个特征: ,只是判断xxx是否超过255就比较困难了(因为正则表达式是处理的文本,而非数字)OK,我们先来处理一个数字,即:xxx。找到一种表达式来处理这个数字,并且保证这个数字不会超过255第一种情况:x,即只有一个数字,它可以是0~9,用\d表示第二种情况:xx,即有两个数字,它可以是00~99,用\d\d表示第三种情况:xxx,这种情况分为两种,一种是1xx,可以用1\d\d表示                                  另外一种是2xx,这又分为两种2[01234]\d                                                            和25[012345]好了组合起来1?\d{1,2}|2[01234]\d|25[012345]既可以标识一个不大于255的数字字符串嗯,我们现在需要重复这种情况既可:(1?\d{1,2}|2[01234]\d|25[012345])\.(1?\d{1,2}|2[01234]\d|25[012345])\.(1?\d{1,2}|2[01234]\d|25[012345])\.(1?\d{1,2}|2[01234]\d|25[012345])呵呵,长是长了点,我试图用boost支持的子表达式缩短,但是没有达到效果,请各位了解boost的正则表达式的达人指点:(1?\d{1,2}|2[01234]\d|25[012345])\.\1$\.\1$\.\1$(参看反向索引:s/regex/doc/,与我们的需求不同)Example:std::string regstr = "(1?\\d{1,2}|2[01234]\\d|25[012345])\\.(1?\\d{1,2}|2[01234]\\d|25[012345])\\.(1?\\d{1,2}|2[01234]\\d|25[012345])\\.(1?\\d{1,2}|2[01234]\\d|25[012345])";boost::regex expression(regstr);std::string testString = "";if( boost::regex_match(testString, expression) ){    std::cout<< "This is ip address" << std::endl;}else{    std::cout<< "This is not ip address" << std::endl;}2我们来看看regex_match的另外一个函数原型template<classST,classSA,classAllocator,classcharT,classtraits>   boolregex_match(constbasic_string<charT,ST,SA>&s,   match_results<typenamebasi

regex学习以及例子 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小38 KB
  • 时间2019-05-18