zoukankan      html  css  js  c++  java
  • vc/mfc/vs2005下正则表达式源代码编程/微软greta Regular Expressions

    1.目前c/C++方面的正则表达式大家必提boost,其实boost是一个庞大的库集合,正式因为庞大,下载编译后还得100多M。所以不选择。

    2.greta是微软的正则表达式封装,不过看它说明除了windows下可以用,linux其实也可以用(c++)。

    3.greta实在vc6下发布的,用vs2005编译,会报错:

    具体错误参照:social.microsoft.com/Forums/zh-TW/vcgeneral/thread/7461e68d-739d-4b36-a068-1c12a827e594 ,“Greta Parser for VS2005”,就是:

    'regex::hetero_stack<AlignmentT,RuntimeTypeCheckT,AssumePodT,DynamicBlockSizeT,StaticBlockSizeT>:tack_node::header' : dependent name is not a type

    解决办法:在模板定义的tack_node前面加上struct即可。

    4.其他参数说明(如区分大小写)

    NOCASE 不区分大小写。
    GLOBAL
    全局。如果指定该参数,rpattern::subsitute 会将串中全部匹配表达式的参数替换;否则(默认),若指定了 RIGHTMOST 参数,替换最后一个,没有指定(默认),替换第一个。
    MULTILINE
    若不指定(默认),'^' 匹配串的开头,'$' 匹配串的结束;若指定,^ 匹配行开头,$ 匹配行结束。
    SINGLELINE
    若不指定(默认),'.' 匹配除换行符(\n)外的任何字符;若指定,'.'也匹配换行符。SINGLELINE 看起来和 MULTILINE 不可一起用,其实她们的含义不是矛盾的,可以一起用。这是 GRETA sb 之处,不知道是否从 perl copy过来的。
    RIGHTMOST
    查找最右边的、最长的匹配串。默认是找左边的、最长的匹配串。btw, 在正则表达式中加 ? 可以使表达式找最短的匹配串。如串"test"re ".+" 会匹配整个 "test" 串,而 re ".+?" 则只匹配 "t"
    NOBACKREFS
    不记录 backref 。替换时用上此参数,可大幅度提高速度。这是文档上说的,俺没有试过。
    ALLBACKREFS
    参见 match_results::all_backref 的解释。

  • 相关阅读:
    ubuntu 升级到5.1kernel,打开bbr
    python json.loads json.dumps的区别
    centos7 install vim8
    Linux的Network Tunnel技术
    Linux内核网络数据包处理流程
    CAD2010 破解方法
    [原创]MSP430FR4133练习(一):GPIO输入电平状态判断
    [原创] Xinput_1.3.DLL / MSVCR100.DLL文件缺失解决办法
    [原创]找不到mswinsck.ocx的解决办法
    Windows7系统推荐
  • 原文地址:https://www.cnblogs.com/lancidie/p/1949903.html
Copyright © 2011-2022 走看看