Visual Studio 2010 下 Boost.Regex 库的使用笔记


这个文章很靠谱,我实际使用过。

关键是简单。

原文地址

最近玩了一把 Boost 中的 Regex 库,发现网上很多文章写的晦涩难懂,更让人生气的是按照其指导是做不出来的,综合几篇文章和自己的实际使用的总结,写个笔记备忘。

按照我自己的老习惯来,先直捣黄龙,能够运行实例再说,把东西做出来之后我们再来进一步的了解相关知识点。 开始吧

1,下载 Boost Release 1.44.0 的文件包,下载的位置: 
然后解压缩到自己设定的位置,我这里设定就是 C:\Boost ,名称越简洁越好,以免发生意外。

2,设定 msvc 的版本跟编译器信息

可能很多人不愿意跟我一样使用这样的目录,为了方便起见,这里用 $BOOST$ 代表你的 Boost 的安装或者解压缩路径,比如在我的机器下,$BOOST$ 就等价于 C:\Boost 。

在 $BOOST$\tools\build\v2\user-config.jam 找到下面的几行:

# ------------------- 
# MSVC configuration. 
# -------------------

# Configure msvc (default version, searched for in standard locations and PATH). 
# using msvc ;

# Configure specific msvc version (searched for in standard locations and PATH). 
# using msvc : 8.0 ;

#添加 Visual Studio 2010 的配置

using msvc : 10.0 : : /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 ;

如果是 Visual Studio 2005 就是 8.0 ,Visual Studio 2008 就是 9.0 ,这个应该没有疑问的。偷懒就直接粘贴过去吧,这个记下来也没啥用。

3,生成 bjam 
$BOOST$ 目录下面,有个文件 bootstrap.bat 的批处理文件,双击或者在命令行提示符窗口中打开,稍等片刻,就会在该目录下生成 bjam.exe 以及它的 log 文件。

4,编译 Boost::Regex,注意,这里只编译  Boost::Regex 库。 
到 $BOOST$ 目录下,键入 bjam --toolset=msvc --with-regex stage ,或者直接复制粘贴吧,免得麻烦。 
编译生成的库文件会被在目录 $BOOST$\stage\lib 中。 
比如,在我的机器上就是: 
C:\BOOST\STAGE\LIB 
    libboost_regex-vc100-mt-1_44.lib 
    libboost_regex-vc100-mt-gd-1_44.lib 
    libboost_regex-vc100-mt-gd.lib 
    libboost_regex-vc100-mt.lib

同时还会生成 bin.v2 这个临时目录,可以查看一下结构,硬盘空间紧张的话,这个目录可以删除掉的,我的目录结构如下: 
C:\BOOST\BIN.V2 
└─libs 
    └─regex 
        └─build 
            └─msvc-10.0 
                ├─debug 
                │  ├─link-static 
                │  │  └─threading-multi 
                │  └─threading-multi 
                └─release 
                    └─link-static 
                        └─threading-multi

5,好了,既然成功的编译成功了,下面就来运行实例。我采用的是《Beyond the C++ Standard Library: An Introduction to Boost》这本书中的实例,简单,小巧。能测试成功,就代表你这边文章没白看。我附上这本书的下载链接吧。

6,打开 Visual Studio 2010 ,接着应该在读这篇文章的各位应该驾轻就熟了。 
File->New->Project->Win32 Console Application ,name 的地方取个项目名称了,我就叫:RegexDemo 好了 
接着next,在Additional options 的地方,选择Empty project,我们自己弄,不要什么预编译头文件(Precompiled header)了,然后 Finish 。

7,新建一个cpp文件,把下面的代码复制到文件中,我也是直接复制原书中的例子,但是加了几行代码,不然的话,编译成功后,运行了只能看到:“Press any key to continue.....” >_< ! 太无趣了。

接下来设置 include 目录和 lib 目录,Visual Studio 2010 的设置方法有点不一样,需要在你的工程上右键属性才可以。


 

#include <iostream> 
#include <cassert> 
#include <string> 
#include <boost/regex.hpp> 

 using namespace std; 

 int main() 
{  
    // 3 digits, a word, any character, 2 digits or "N/A",  
    // a space, then the first word again  
     boost::regex reg("\\d{3}([a-zA-Z]+).(\\d{2}|N/A)\\s\\1");    
    std::string correct="123Hello N/A Hello";  
    std::string incorrect="123Hello 12 hello";   

    /* 原来的代码 
    assert(boost::regex_match(correct,reg)==true);  
    assert(boost::regex_match(incorrect,reg)==false); 
    */ 

    // 新添加几行玩一下。 
     bool b1 = boost::regex_match(correct,reg); 
    bool b2 = boost::regex_match(incorrect,reg); 
    if(b1) 
    { 
        cout << "correct!!!" << endl; 
    } 
    cout << "=======================================" << endl; 
    if(!b2) 
    { 
        cout << "incorrect!!!" << endl; 
    } 

    return 0; 
}

F7 编译,结果自然是:========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 
Ctrl + F5 直接运行,看到结果了吧。至于例子不解释了,自己看书。因为这个设计到正则表达式的知识,不在本文讨论范围。

说好了的,我们运行完实例后,开始相关知识点拓展,不要急躁哈。*^_^*


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值