boost是c++下的强大的library库,本文讲一下怎么安装boost的正则表达式模块。
1:下载boost源文件。
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.gz
解包后进入到根目录。
2:./bootstrap.sh --with-libraries=regex --prefix=/usr/local/regex
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.gz
解包后进入到根目录。
2:./bootstrap.sh --with-libraries=regex --prefix=/usr/local/regex
./bjam install 现在回在/usr/local/regex下生成动态和静态的链接库。 3:实例验证
#include <iostream> #include <string> #include <boost/regex.hpp> // Boost.Regex lib using namespace std; int main( ) { std::string s, sre; boost::regex re; while(true) { cout << "expression_r: "; cin >> sre; if (sre == "quit") { break; } cout << "String: "; cin >> s; try { // Set up the regular expression_r for case-insensitivity re.assign(sre, boost::regex_constants::icase); } catch (boost::regex_error& e) { cout << sre << " is not a valid regular expression_r: \"" << e.what() << "\"" << endl; continue; } if (boost::regex_match(s, re)) { cout << re << " matches " << s << endl; } } }
4:编译 g++-I boostlib/ rtest.cpp -o rtest /usr/local/regex/lib/libboost_regex.a 建议用静态链接库,不然的话你还得再运行的机器上再单独安装boost的regex模块。 参考:http://onlamp.com/pub/a/onlamp/2006/04/06/boostregex.html?page=1 http://www.boost.org/doc/libs/1_42_0/more/getting_started/unix-variants.html