zoukankan      html  css  js  c++  java
  • C++04:使用Boost-小试Regex库

    C++04:使用Boost-小试Regex库

    C++04:使用Boost-小试Regex库

    一、编写代码

    下面代码实现的功能:找出html文件中的所有链接

    /*
     * regex_test.cpp
     *
     */
    
    #include <iostream>
    #include <fstream>
    #include <string>
    
    #include <boost/regex.hpp>
    
    using namespace std;
    
    int main(int argc, char* argv[]) {
        if (argc != 2) {
            cerr << "usage: " << argv[0] << " <input_file>" << '\n';
            return 1;
        }
    
        ifstream fin(argv[1]);
        if (!fin) {
            cerr << "open file " << argv[1] << " failed." << '\n';
            return 1;
        }
    
        string content;
        char c;
        while (fin >> c) {
            content.push_back(c);
        }
    
        try {
            boost::regex re("href\\s*=\\s*\"([^\"]+)\"", boost::regex::icase);
            boost::sregex_token_iterator it(content.begin(), content.end(), re, 1,
                    boost::match_default);
            boost::sregex_token_iterator end;
    
            while (it != end)
                cout << *it++ << endl;
        } catch (exception& e) {
            cerr << e.what() << '\n';
        }
    
    }

    二、编译代码

    $ g++ -o"regex_test" -g3 -Wall regex_test.cpp -lboost_regex


    三、运行程序
    regex_test

    $ ./regex_test
  • 相关阅读:
    ExtJs 4.0 ExtJs2.2 JavaScript
    C++中关于classview、resourceview、fileview
    BIN OBJ 区别
    数据编码
    多线程
    REST
    SQL Server 2005安装
    临时
    数据存储
    灰度直方图
  • 原文地址:https://www.cnblogs.com/lexus/p/2565899.html
Copyright © 2011-2022 走看看