正则表达式在VisualC 6.0中使用Boost正则表达式库

boost库  时间:2021-01-26  阅读:()

在VisualC++6.0中使用Boost正则表达式库

目录

二 Boost正则表达式库

三安装

四结束语

正文

摘要摘 要本文介绍了在Visual C++ 6.0编程环境下如何利用Boost正则表达式库来处理正则表达式

关键字 VisualC++;Boost;正则表达式

正则表达式Regular Expression是一种进行高效、准确、简洁的进行文本字符串处理模式验证、搜索替换等的方法。它用一组特定含义的字符来匹配不同的文本字符串如“1[0-9]+”表示所有以1开始的数。正则表达式已经在很多地方得到广泛的应用包括Unix操作系统 PHP C# Java等开发环境 以及很多的应用软件中都可

以看到正则表达式的影子。如在Unix下面的grep甚至dos下的类似“dir *.*”的语句中。尤其是Perl被很多人认为是最佳的正则表达式处理工具 以致于许多其他正则表达式工具都宣称兼容Perl的正则表达式。而传统的C++没有正则表达式标准库处理正则表达式非常麻烦。

二 Boost正则表达式库

Visual C++.Net之前的版本如现在仍被广泛使用的Visual C++

6.0都没有提供对正则表达式的直接支持。于是第三方C++正则表达式库就应运而生其中以GRETA和Bo o s t: :reg ex最为有名。 GRETA是微软研究院推出的一个正则表达式模板类库。而Boost是C++标准委员会库工作组发起的一套开放源代码的、可移植的、基于模版的C++库有望被纳入C++标准库。 Boost中的正则表达式可以与Perl语言中的相同功能媲美。

三安装

。可以在Boost的官方网站: :-下载。 。下载的压缩包中已包含了所有的库文件以及官方网站上的文档资料。将下载包解压安装至

C:Boost 目录或其它目录。不像Boost下的其他模版库正则表达式库是以源码形式提供的需要单独编译才能在Windows下使用所以需要先安装好Visual C++ 6.0使用它的编译工具来编译。首先需要设置必须的环境变量这可以通过运行Visual C++安装目录下的Vcva32.bat批处理文件来设置。然后在命令行模式下转到

C:boostlibsregexbui ld目录执行nmake -fvc6.mak如果出现“Variable MSVCDIR not set”之类的错误请先检查环境变量及缺省路径是否成功设置。可以不理会执行过程中出现的警告信息等待几分钟时间成功执行后就会在C:boostlibsregexbuild目录下生成一个Vc6目录这个目录里有很多lib、 pdb和dll文件。然后在命令行下执行nmake -fvc6.mak itall将lib文件、 pdb和dll文件分别复制到Vc98下的l ib目录和bin目录中。可以用nmake -fvc6.makclean语句来清除编译过程中生成的临时文件。最后在Visual C++

6.0工作界面的“工具选项目录”页面下将C:Boost添加到VisualC++ 6.0的“include files”列表中。这样所有的准备工作都做好了下面就通过运行一个简单的实例来检查Boost: :Regex正则表达式库是否安装成功。这是一个判断信用卡号格式是否正确的程序来自Boost: :Regex自带的文档并做了简化。

用Visual C++ 6.0创建一个控制台程序

#include

#includebool validate_card_format(cot std: :string& s)static cot boost: :regex e(""(d{4} [- ]) {3}d{4}return boost: :regex_match(s e)

#include

using namespace std;int main(string s[4] = { ""0000111122223333"" ""0000 1111 22223333"

""0000-1111-2222-3333"" ""000-1111-2222-3333"" }int i;for(i = 0; i < 4; ++i)cout << ""val idate_card_format("""" << s[i] << """")returned "" << validate_card_format(s[i]) << endl;return 0;

运行结果如下validate_card_format(""0000111122223333"") returned 0validate_card_format(""0000 1111 2222 3333"") returned 1validate_card_format(""0000-1111-2222-3333"") returned 1validate_card_format(""000-1111-2222-3333"") returned 0

这段程序的核心正则表达式语句是“(d{4} [- ]) {3}d{4}” 注意“[- ]”中“-”之后是一个空格与之匹配的格式是 3组4个数字加上一个“-”或空格并以4个数字结尾 即匹配形如“0000-1111-2222-3333”或“0000 1111 2222 3333”的字符串。

四结束语

Boost中还包含有conveiolexical cast、 format、 spirit、tokenizer和string algo等处理字符串及文本的库。灵活地将它们与Boost: :Regex正则表达式库结合使用将大大提高文本处理类程序的编程效率更能体会到Boost库的强大力量。

欧路云(22元/月),美国CERA弹性云服务器!香港弹性云服务器15元/月起;加拿大高防vps仅23元/月起

欧路云怎么样?欧路云主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。2021年7月14日美国 CERA 弹性云服务器 上新 联通CUVIP 线路!8折特惠中!点击进入:欧路云官方网站地址付款方式:PayPa...

GreenCloudVPS$20/年多国机房可选,1核@Ryzen 3950x/1GB内存/30GB NVMe/10Gbps端口月流量2TB

GreencloudVPS此次在四个机房都上线10Gbps大带宽VPS,并且全部采用AMD处理器,其中美国芝加哥机房采用Ryzen 3950x处理器,新加坡、荷兰阿姆斯特丹、美国杰克逊维尔机房采用Ryzen 3960x处理器,全部都是RAID-1 NVMe硬盘、DDR4 2666Mhz内存,GreenCloudVPS本次促销的便宜VPS最低仅需20美元/年,支持支付宝、银联和paypal。Gree...

Hostodo(年付$34.99), 8TB月流量 3个机房可选

Hostodo 算是比较小众的海外主机商,这次九月份开学季有提供促销活动。不过如果我们有熟悉的朋友应该知道,这个服务商家也是比较时间久的,而且商家推进活动比较稳,每个月都有部分活动。目前有提供机房可选斯波坎、拉斯维加斯和迈阿密。从机房的地理位置和实际的速度,中文业务速度应该不是优化直连的,但是有需要海外业务的话一般有人选择。以前一直也持有他们家的年付12美元的机器,后来用不到就取消未续约。第一、开...

boost库为你推荐
qq空间首页QQ空间主页怎么弄?浏览器哪个好哪个浏览器好用?杀毒软件哪个好杀毒软件什么最好迈腾和帕萨特哪个好迈腾和帕萨特哪个好三国游戏哪个好玩哪款三国游戏最好玩`!手机杀毒软件哪个好手机杀毒清理软件哪个好啊等额本息等额本金哪个好等额本息和等额本金哪个好?手机音乐播放器哪个好手机音乐播放器音质好的APP是那款海克斯皮肤哪个好LOL用100块是抽海克斯好还是抽蛮王的生化领主的活动还是直接买皮肤好车险哪个好人保和平安车险哪个好
me域名注册 免费试用vps 提供香港vps xenvps 本网站服务器在美国维护 dropbox网盘 ev证书 国外php空间 天翼云盘 免费dns解析 免费mysql数据库 空间登录首页 英雄联盟台服官网 免费稳定空间 江苏双线 架设代理服务器 2016黑色星期五 ftp是什么东西 硬防 byebyelove 更多