当前位置: 首页 > 图文教程 > 开发语言 > VC++ > GRETA正则表达式模板类库

VC++
如何隐藏显示在任务栏中的对话框程序
一个效果很好的outlookbar控件CXTOutBarCtrl
如何在对话框程序中使用动画控件
形态各异的不规则窗体
支持换肤功能的窗口实例
如何给基于对话框的应用加启动画面
Convert CHtmlView to CHtmlCtrl(View与Frame的分离)
《Windows 程序设计》学习笔记(四)
如何模拟《WORD》的窗口形式
如何按非客户区移动窗体
仿制金山毒霸专杀工具界面
在对话框程序中插入DialogBar
接触VC之三:MFC基于对话框程序
无标题栏对话框的拖动
MFC框架程序中全屏显示特性的实现
给你的应用程序添加动态鼠标
在MFC程序中添加全屏显示功能
制作类似网络蚂蚁的拉帘式Tab
如何有效的使用对话框之二
IE控制条的实现

VC++ 中的 GRETA正则表达式模板类库


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 213 ::
收藏到网摘: n/a

GRETA正则表达式模板类库


编译:胡金山

下载源代码

  本文摘要翻译了几篇文章的内容,简单介绍 ATL CAtlRegExp,GRETA,Boost::regex 等正则表达式库,这些表达式库使我们可以方便地利用正则库的巨大威力,给我们的工作提供了便利。

正则表达式语法

字符元 意义
. 匹配单个字符
[ ] 指定一个字符类,匹配方括号内的任意字符。例:[abc] 匹配 "a", "b"或 "c"。
^ 如果^出现在字符类的开始处,它否定了字符类,这个被否定的字符类匹配除却方括号内的字符的字符。如:[^abc]匹配除了"a", "b"和"c"之外的字符。如果^出现在正则表达式前边,它匹配输入的开头,例:^[abc]匹配以"a", "b"或"c"开头的输入。
- 在字符类中,指定一个字符的范围。例如:[0-9]匹配"0"到"9"的数字。
? 指明?前的表达式是可选的,它可以匹配一次或不进行匹配。例如: [0-9][0-9]? 匹配"2"或"12"。
+ 指明?前的表达式匹配一次或多次。例如:[0-9]+匹配"1", "13", "666"等。

*

指明*前的表达式匹配零次或多次。
??, +?, *? ?, +和*的非贪婪匹配版本,它们尽可能匹配较少的字符;而?, +和*则是贪婪版本,尽可能匹配较多的字符。例如:输入"<abc><def>", 则<.*?> 匹配"<abc>",而<.*>匹配"<abc><def>"。
( )  分组操作符。例如:(\d+,)*\d+匹配一串由逗号分开的数字,例如: "1"或"1,23,456"。
\ 转义字符,转义紧跟的字符。例如,[0-9]+ 匹配一个或多个数字,而 [0-9]\+ 匹配一个数字后跟随一个加号的情况。反斜杠\也用于表示缩写,\a 就表示任何数字、字母。如果\后紧跟一个数字n,则它匹配第n个匹配群组(从0开始),例如,<{.*?}>.*?</\0>匹配"<head>Contents</head>"。注意,在C++字符串中,反斜杠\需要用双反斜杠\\来表示: "\\+", "\\a", "<{.*?}>.*?</\\0>"。
$ 放在正则表达式的最后,它匹配输入的末端。例如:[0-9]$匹配输入的最后一个数字。
| 间隔符,分隔两个表达式,以正确匹配其中一个,例如:T|the匹配"The" 或"the"。

 

缩写匹配

缩写 匹配
\a 字母、数字([a-zA-Z0-9])
\b 空格(blank): ([ \\t])