返回> 网站首页 

VC2008中配置与使用boost库正则表达式

yoours2009-10-19 11:59:30 阅读 1227

简介一边听听音乐,一边写写文章。


本文介绍使用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
微信小程序扫码登陆

文章评论

1227人参与,0条评论