正则表达式在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库的强大力量。

金山云:618年中促销,企业云服务器2核4G仅401.28元/年,827.64元/3年

金山云618年中促销活动正在进行中!金山云针对企业级新用户优惠力度比普通个人用户优惠力度要大,所以我们也是推荐企业新用户身份购买金山云企业级云服务器,尽量购买3年配置的,而不是限时秒杀活动中1年的机型。企业级用户购买金山云服务器推荐企业专区:云服务器N3 2核4G云服务器,1-5M带宽,827.64元/3年,性价比高,性能稳定!点击进入:金山云618年中促销活动目前,金山云基础型E1云服务器2核4...

618云上Go:腾讯云秒杀云服务器95元/年起,1C2G5M三年仅288元起

进入6月,各大网络平台都开启了618促销,腾讯云目前也正在开展618云上Go活动,上海/北京/广州/成都/香港/新加坡/硅谷等多个地区云服务器及轻量服务器秒杀,最低年付95元起,参与活动的产品还包括短信包、CDN流量包、MySQL数据库、云存储(标准存储)、直播/点播流量包等等,本轮秒杀活动每天5场,一直持续到7月中旬,感兴趣的朋友可以关注本页。活动页面:https://cloud.tencent...

Friendhosting全场VDS主机45折,虚拟主机4折,老用户续费9折

Friendhosting发布了今年黑色星期五促销活动,针对全场VDS主机提供45折优惠码,虚拟主机4折,老用户续费可获9折加送1个月使用时长,优惠后VDS最低仅€14.53/年起,商家支持PayPal、信用卡、支付宝等付款方式。这是一家成立于2009年的老牌保加利亚主机商,提供的产品包括虚拟主机、VPS/VDS和独立服务器租用等,数据中心可选美国、保加利亚、乌克兰、荷兰、拉脱维亚、捷克、瑞士和波...

boost库为你推荐
2017爱奇艺vip免费领取求免费的爱奇艺会员???视频剪辑软件哪个好有哪些好用的手机剪辑视频软件dnf魔枪士转职哪个好dnf魔枪士转职哪个好几个职业看书软件哪个好推荐几个好用的手机看书软件辽宁联通网上营业厅辽宁省昌图县联通网上营业厅通话单怎么查询首选dns服务器地址默认网关和首选DNS服务器是多少dns服务器故障DNS服务解析故障 怎么办上海dns服务器地址上海浦东新区dns是多少360云盘共享群360网盘怎样进共享群?车展买车便宜吗请问车展买车会便宜点吗?需要注意哪些?
域名信息查询 子域名查询 如何查询ip地址 中文域名交易中心 80vps 冰山互联 blackfriday webhosting sugarsync 哈喽图床 大容量存储 免费smtp服务器 免费个人网站申请 上海域名 qingyun 789电视 网站木马检测工具 卡巴斯基试用版 服务器干什么用的 免费网页申请 更多