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
  • 相关阅读:
    java performance
    C# and Java: Comparing Programming Languages
    MYSQL blogs and articles
    网络基本功系列:细说网络那些事儿
    Spark 优化器 ML的论文
    逻辑回归
    MapReduce
    Spark
    Set-Theory-and-Logic
    k-means
  • 原文地址:https://www.cnblogs.com/lexus/p/2565899.html
Copyright © 2011-2022 走看看