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 的解释。

  • 相关阅读:
    计算机算法设计与分析之棋盘覆盖问题
    在uboot里面加入环境变量使用run来运行
    软件project师的属性与发展
    Oracle 表三种连接方式(sql优化)
    POJ 1700 cross river (数学模拟)
    八:Java之I/O
    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
    WebBot
    WebBrowserProgramming
    Skulpt
  • 原文地址:https://www.cnblogs.com/lancidie/p/1949903.html
Copyright © 2011-2022 走看看