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

ZJI全新上架香港站群服务器,4C段238个IP月付1400元起

ZJI本月新上线了香港葵湾机房站群服务器,提供4个C段238个IPv4,支持使用8折优惠码,优惠后最低每月1400元起。ZJI是原Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月更名为ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务,所选数据中心均为国内普遍访问速度不错的机房。葵湾二型(4C站群)CPU:I...

Ftech:越南vps,2核/2G/20G SSD/1Gbps不限流量/可安装Windows系统,$12.5月

ftech怎么样?ftech是一家越南本土的主机商,成立于2011年,比较低调,国内知道的人比较少。FTECH.VN以极低的成本提供高质量服务的领先提供商之一。主营虚拟主机、VPS、独立服务器、域名等传统的IDC业务,数据中心分布在河内和胡志明市。其中,VPS提供1G的共享带宽,且不限流量,还可以安装Windows server2003/2008的系统。Ftech支持信用卡、Paypal等付款,但...

ZJI-全场八折优惠,香港服务器 600元起,还有日本/美国/韩国服务器

月付/年付优惠码:zji  下物理服务器/VDS/虚拟主机空间订单八折终身优惠(长期有效)一、ZJI官网点击直达ZJI官方网站二、特惠香港日本服务器香港大埔:http://hkdb.speedtest.zji.net/香港葵湾:http://hkkw.speedtest.zji.net/日本大阪:http://jpsk.speedtest.zji.net/日本大阪一型 ...

boost库为你推荐
名侦探柯南644名侦探柯南1~674集哪集很色免费卡巴斯基杀毒软件除了卡巴斯基,还有哪些杀毒软件softbank手机日本softbank手机国内使用法兰绒和珊瑚绒哪个好珊瑚绒和法莱绒哪种不容易掉毛浮动利率和固定利率哪个好银行贷款是选固定利率好还是浮动利率手机炒股软件哪个好手机炒股软件云盘哪个好网络云盘哪个好用牡丹江教育云空间登录我想知道校园云空间是用什么账号登录的?qq空间登录器QQ空间校友网页自动登陆器qq网盘在哪里QQ网盘在哪里
网站域名空间 花生壳域名贝锐 精品网 mach 贵州电信宽带测速 evssl 台湾谷歌网址 e蜗 169邮箱 泉州移动 宏讯 百度云加速 双线空间 镇江高防 可外链的相册 umax 葫芦机 开心online forwarder ncp是什么 更多