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

ATCLOUD.NET-OVH海外高防云主机,采用KVM架构,稳定安全且便宜好用,仅3刀起

官方网站:点击访问ATCLOUD.NET官网优惠码:目前提供Cloud VPS与Storage VPS两款产品的六折优惠活动(续费同价,截止至2021年5月31日)优惠码:UMMBPBR20Z活动方案:一、型号CPU内存磁盘流量优惠价格购买链接VPS-1GB0.5×2.6+GHz1GB20GB1TB$3立即购买VPS-2GB1×2.6+GHz2GB50GB2TB$6立即购买VPS-4GB2×2.6...

RAKsmart美国洛杉矶独立服务器 E3-1230 16GB内存 限时促销月$76

RAKsmart 商家我们应该较多的熟悉的,主营独立服务器和站群服务器业务。从去年开始有陆续的新增多个机房,包含韩国、日本、中国香港等。虽然他们家也有VPS主机,但是好像不是特别的重视,价格上特价的时候也是比较便宜的1.99美元月付(年中活动有促销)。不过他们的重点还是独立服务器,毕竟在这个产业中利润率较大。正如上面的Megalayer商家的美国服务器活动,这个同学有需要独立服务器,这里我一并整理...

ProfitServer折优惠西班牙vps,荷兰vps,德国vps,5折优惠,不限制流量

profitserver正在对德国vps(法兰克福)、西班牙vps(马德里)、荷兰vps(杜廷赫姆)这3处数据中心内的VPS进行5折优惠促销。所有VPS基于KVM虚拟,纯SSD阵列,自带一个IPv4,不限制流量,在后台支持自定义ISO文件,方便大家折腾!此外还有以下数据中心:俄罗斯(多机房)、捷克、保加利亚、立陶宛、新加坡、美国(洛杉矶、锡考克斯、迈阿密)、瑞士、波兰、乌克兰,VPS和前面的一样性...

boost库为你推荐
软银收购arm英国的ARM 芯片公司宣布同中国芯片全面合作吗?集成显卡和独立显卡哪个好独立显卡和集成显卡区别??莫代尔和纯棉哪个好莫代尔和纯棉的区别,莫代尔和纯棉哪个好法兰绒和珊瑚绒哪个好请问天鹅绒法兰绒和珊瑚绒哪个好啊 想买套床上用品手机炒股软件哪个好什么手机炒股软件好用,你们都用哪个海克斯皮肤哪个好联盟海克斯科技和抽皮肤哪个合适扣扣空间登录如何设置QQ空间快速登陆网通dns服务器地址联通DNS地址怎样设置360云存储360网盘好使吗?360云盘共享群360网盘共享群怎样利用最有价值?
韩国vps俄罗斯美女 域名备案只选云聚达 免费动态域名解析 香港bgp机房 加勒比群岛 cdn服务器 iis安装教程 智能骨干网 怎么测试下载速度 如何用qq邮箱发邮件 cloudlink 便宜空间 linode支付宝 测速电信 汤博乐 winserver2008r2 godaddy退款 linuxvi 硬防 回程 更多