VC2008中配置与使用boost库正则表达式
2010-12-12 20:27
387 查看
本文介绍使用boost库正则表达式来解决字符匹配、搜索、替换等应用。
1、下载与安装boost库
有关boost的使用可以参考http://www.boost.org/
2、编译动态库,本文只要支持正则表达式就可以,因此只需要编译E:/boost/libs/regex/build目录下的文件。这步比较关键。
具体操作:
在“运行”里输入“cmd”,打开命令提示符;
输入命令“cd E:/boost/libs/regex/build”,设置当前目录
设置VC2008的配置环境变量,找到Microsoft Visual Studio 9.0/VC/bin/VCVARS32.BAT文件,把VCVARS32.BAT文件用鼠标拖到打开的cmd窗口("F:/Program Files/Microsoft Visual Studio/VC/bin/VCVARS32.BAT"),然后回车。
输入命令“nmake –f vc9.mak”
等待几分钟,E:/boost/libs/regex/build多了一个vc9的文件夹,里面是很多lib和dll文件。
3、配置VC2008 “VC++目录”,使它编译使时候能找到正则库。
打开vc2008,选择“工具->选项->项目与解决方案->显示以下内容的目录-> 包含文件”,加入一行“E:/BOOST”
选择“工具->选项->项目与解决方案->显示以下内容的目录-> 库文件”,加入一行“E:/BOOST /libs/regex/build/vc90”
4、编写程序测试
VC2008中默认的是UNICODE编码字符集,要使用regex的UNICODE版本tregex.关于正则表达式的应用可以查看使用说明和实例,分别放在libs/regex/doc和libs/regex/example目录中.注意在编译连接的时候可能会报告libboost_regex-vc90-mt-gd-1_39.lib文件无法找到,需要把libboost_regex-vc90-mt-gd-1_38.lib改成libboost_regex-vc90-mt-gd-1_39.lib
新建一个对话框的MFC工程,
加入头文件
#include <boost/regex/mfc.hpp>
在按钮鼠标单击事件响应函数中加入
boost::tregex expression(_T("^select ([a-zA-Z]*) from ([a-zA-Z]*)"));
CString sRet;
CString in = _T("select gm from tab");
boost::tmatch what;
if(boost::regex_match(in, what, expression))//CString转string
{
for(int i=0;i<what.size();i++)
{
sRet = CString(what.first, what.length(i));
MessageBox(sRet);
}
}else{
MessageBox(_T("Error Input"));
}
输出的结果如下:
select gm from tab
gm
tab
1、下载与安装boost库
有关boost的使用可以参考http://www.boost.org/
2、编译动态库,本文只要支持正则表达式就可以,因此只需要编译E:/boost/libs/regex/build目录下的文件。这步比较关键。
具体操作:
在“运行”里输入“cmd”,打开命令提示符;
输入命令“cd E:/boost/libs/regex/build”,设置当前目录
设置VC2008的配置环境变量,找到Microsoft Visual Studio 9.0/VC/bin/VCVARS32.BAT文件,把VCVARS32.BAT文件用鼠标拖到打开的cmd窗口("F:/Program Files/Microsoft Visual Studio/VC/bin/VCVARS32.BAT"),然后回车。
输入命令“nmake –f vc9.mak”
等待几分钟,E:/boost/libs/regex/build多了一个vc9的文件夹,里面是很多lib和dll文件。
3、配置VC2008 “VC++目录”,使它编译使时候能找到正则库。
打开vc2008,选择“工具->选项->项目与解决方案->显示以下内容的目录-> 包含文件”,加入一行“E:/BOOST”
选择“工具->选项->项目与解决方案->显示以下内容的目录-> 库文件”,加入一行“E:/BOOST /libs/regex/build/vc90”
4、编写程序测试
VC2008中默认的是UNICODE编码字符集,要使用regex的UNICODE版本tregex.关于正则表达式的应用可以查看使用说明和实例,分别放在libs/regex/doc和libs/regex/example目录中.注意在编译连接的时候可能会报告libboost_regex-vc90-mt-gd-1_39.lib文件无法找到,需要把libboost_regex-vc90-mt-gd-1_38.lib改成libboost_regex-vc90-mt-gd-1_39.lib
新建一个对话框的MFC工程,
加入头文件
#include <boost/regex/mfc.hpp>
在按钮鼠标单击事件响应函数中加入
boost::tregex expression(_T("^select ([a-zA-Z]*) from ([a-zA-Z]*)"));
CString sRet;
CString in = _T("select gm from tab");
boost::tmatch what;
if(boost::regex_match(in, what, expression))//CString转string
{
for(int i=0;i<what.size();i++)
{
sRet = CString(what.first, what.length(i));
MessageBox(sRet);
}
}else{
MessageBox(_T("Error Input"));
}
输出的结果如下:
select gm from tab
gm
tab
相关文章推荐
- 使用boost库的正则表达式regex实现从一篇文档中找出所有匹配的字符串
- visual studio 2005 下安装使用boost库 (正则表达式)
- [Python]_[使用正则表达式提取迅雷界面配置文件XLUE的图片]
- 在VC中使用正则表达式(boost库)
- [Python]_[使用正则表达式提取迅雷界面配置文件XLUE的图片]
- sqlServer 中 正则表达式的使用(regexReplace函数)及配置(转)
- C++正则表达式处理Boost库使用
- PHP正则表达式使用详解
- SAS9新体验-在DATA STEP中使用perl 正则表达式支持(Regular Expressions)
- (学习笔记)简单正则表达式的使用实例[javascript]
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
- jquery利用正则表达式验证密码,手机号(主要是使用方法,正则表达式网上一搜一堆)
- java爬虫--使用正则表达式获取网页中的email
- js正则表达式使用总结
- python 正则表达式的使用
- 正则表达式使用\1的好处
- js中使用正则表达式去除字符串前后空格
- 正则表达式第四篇(Java中使用正则表达式)
- Linux正则表达式使用指南
- Java中使用正则表达式处理文本数据