技术专题

boost regex库安装使用

2009年2月14日 阅读(1,161)

dev c++下安装

1.将regex编译成静态库

在dev c++下建立一个项目,选择static libray类型,然后将boost_1_37_0\libs\regex\src下的所有源代码导入到该工程,编译该工程。

将生成的regex.a改名为libregex.a,放到C:\Dev-C++\lib下,注意前缀必须是lib

设置将要使用regex的新工程的include文件路径,使其包含boost/regex.hpp

设置项目属性,在连接器选项中加入"-lregex"

 

2.使用bjam编译生成,使用如下命令bjam –build-dir="c:\boost" –with-regex –toolset=gcc stage

3.使用make命令单独生成regex,进入boost_1_37_0\libs\regex\build,选择合适的mak文件

make -f *.mak生成相应文件

用法:

简单例子:

#include <boost/regex.hpp>
using namespace std;
using namespace boost;
int main( int argc, char* argv[] )
{
std::string regstr = "(\\d+)";
boost::regex expression(regstr);
std::string testString = "192.168.4.1";
boost::smatch what;
std::string::const_iterator start = testString.begin();
std::string::const_iterator end = testString.end();
while( boost::regex_search(start, end, what, expression) )
{
    std::cout<< "Have digit:" ;
    std::string msg(what[1].first, what[1].second);
    std::cout<< msg.c_str() << std::endl;
    start = what[0].second;
}

    return 0;
}

常用语法标志:

boost::regex expression(regstr,boost::regex::icase|boost::regex::perl);

非贪婪的重复(有时候希望匹配长度尽量短):

在表示数量的*+?后加?

 c++网络库

asio:http://asio.sourceforge.net/boost 友好的异步通信库 编程语言C++

poco:http://sourceforge.net/projects/poco/ 

java,c#的c++常用类库实现,常用网络协议 c++实现 http ftp smtp dns编程语言 C++

CARL C++ Advanced Runtime Library:http://sourceforge.net/projects/carl-lib

java 类库得C++实现
编程语言 C++

You Might Also Like