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

摘要:
C++04:使用Boost-尝试Regex Library C++04:使用Boost–尝试Regex Library 2009-10-2911:57 I。编写代码以实现以下功能:查找html文件/**Regex_test.cpp**/#include<iostream>#incluse<fstream>#inclaude<string>#incloude<Boost/Regex。hpp˃使用名称空间std;intmain{if(argc!=end)cout˂˂*it++˂˂endl;}catch{cerr<e.what()<˂'\n';}}2、 编译代码$g++-o“regex_test”-g3 Wallregex_test。cpp-lboost_RegexIII.运行程序Regex_test$/regex_测试

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

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


2009-10-29 11:57

一、编写代码

下面代码实现的功能:找出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

免责声明:文章转载自《C++04:使用Boost-小试Regex库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mysql Select 语句中实现的判断【跨域】SpringBoot跨域,拦截器中,第一次获取的请求头为NULL,发送两次请求的处理方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Boost库学习(3) 内存管理

preface: 1、传统C++内存管理中可能出现的问题:内存泄露、野指针、访问越界;相关解决方案:智能指针 std::auto_ptr,不能完全解决内存管理中出现的问题; 2、关于smart_ptr库的概述: 2.1、C++程序员通常采用RAII(资源获取即初始化)机制管理内存资源,在使用资源的类的构造函数中申请资源,最后在析构函数中释放资源;如果对象的...

linux boost 安装

sudo apt-get install libboost-dev  但是,我这样安装以后,编译程序时出现了很多错误,而且都是系统文件的错误。我开始以为是我的boost库版本不对,后来换了好几个版本,都出现了同样的问题。后来,自己编译了一个boost.1.42。然后程序就顺利通过了。后来想了一下原因,可能是因为从上面的命令默认安装的boost在编译打包时没...

Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)

Centos7.6编译安装数据库5.7.27(华为鲲鹏云服务器) 1、数据库下载相关安装包 https://downloads.mysql.com/archives/community/ Mysql5.7.22版本有很多的变化,安装时需要安装BOOST库,同安装包一起下载即可。 2、创建安装时需要的目录 mkdir -p /www/server/mysq...

boost test学习(一)

据说相比之cppunit等其它的测试工具更好用,反正当初cppunit没能够在实际工作中派上用场,今天突然看到boost test库,而且是boost库内置的,研究一下。 test库将测试程序定义为一个测试模块,由测试安装,测试主体,测试清理和测试运行器四个部分组成。测试主体是测试模块的实际运行部分,由测试用例和测试套件组织成测试树的形式。 刚开始测试时,...

在WindowsXP下 VC6.0 编译安装Boost库 Step by Step CHRIS

要使用例如正则表达式类的话就需要编译了。为了不浪费自己High的心情,我还是决定完全编译一下Boost库。首先从Boost的老巢http://www.boost.org/下载。下载完成以后是一个安装文件(其实就是进行自动解压缩的)。选择你的目录解压缩Boost库。然后我们开始对其进行编译我所下载的版本是1.33.1。 1.cmd 2.进入安装VC的目录例如...

基于Boost库的HTTP Post函数

两个函数的区别: 提交表单数据和提交文本数据 表单数据: request_stream << "Content-Type: application/x-www-form-urlencoded "; 文本数据: request_stream << "Content-Type: text/html "; #include <i...