boost 正则表达式 regex
boost 正则表达式 regex
环境安装
如果在引用boost regex出现连接错误,但是引用其他的库却没有这个错误,这是因为对于boost来说,是免编译的,但是,正则这个库 是需要单独编译和使用的。简单的办法就是 直接将boost库全部编译,然后 找到正则的lib,编译时候引用进去。
代码example
#include <boost/regex.hpp>
#include <iostream>
#include <string>
#include "TestRe.h"
using namespace::boost;
using namespace::std;
void TestRe::test() {
    regex re("(https?://www.ttufo.com/.+/.+/.+)(_\\d+)(.html?)");
    //string replace("http://www.ttufo.com/($1)/($2)/($3).htm($5)");
    //regex re("http://www.ttufo.com/(.+)/(.+)/(.+)(_.+).htm(l?)");
    string target("http://www.ttufo.com/ufo/201705/154053_3.html");
    cmatch what;
    if (regex_match(target.c_str(), what, re)) {
        cout << "match " << what.size() << endl;
        for (int i = 0; i < what.size(); i++) {
           cout << "what[" << i << "]: " << what[i] << ", first: " << what[i].first << ", second: " << what[i].second << endl;
        }
    } else {
        cout << "not match " << endl;
    }
}
void TestRe::test_replace() {
    cout << "test replac ----------------" << endl;
    string s1 = "(<)|(>)|(&)";
    // string s2 = "(?1b)(?2e)(?3...)";
    string s2 = "(?1$1)(?2$2)(?3...)";
    string target("cout << a&b << endl;");
    boost::regex reg( s1 );
    string s = boost::regex_replace( target,
                                     reg,
                                     s2,
                                     boost::match_default | boost::format_all);
    cout << s << endl;
    cmatch what;
    target = "cout << a&b << endl;";
    if (regex_search(target.c_str(), what, reg)) {
        cout << "match " << what.size() << endl;
        for (int i = 0; i < what.size(); i++) {
            cout << "what[" << i << "]: " << what[i] << ", first: " << what[i].first << ", second: " << what[i].second << endl;
        }
    } else {
        cout << "not match " << endl;
    }
    cout << "test replac ----------------" << endl;
}
void TestRe::test_replace_1() {
    regex reg("(https?://www.ttufo.com/.+/.+/.+)(_\\d+)(.html?)");
    string target("https://www.ttufo.com/ufo/201705/154053_3.html");
    string replace("http://www.ttufo.com/($1)/($2)/($3).htm($5)");
    replace = "($1)($3)";
    string s = boost::regex_replace( target,
                                     reg,
                                     replace,
                                     boost::match_default | boost::format_all);
    cout << "test replace 1" << endl;
    cout << s << endl;
    cout << "test replace1 end" << endl;
}
boost 正则表达式 regex的更多相关文章
- 转:C++ Boost/tr1 Regex(正则表达式)快速指南
		
C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...
 - (四)boost库之正则表达式regex
		
(四)boost库之正则表达式regex 正则表达式可以为我们带来极大的方便,有了它,再也不用为此烦恼 头文件: #include <boost/regex.hpp> 1.完全匹配 std ...
 - Boost正则表达式库regex常用search和match示例 - 编程语言 - 开发者第2241727个问答
		
Boost正则表达式库regex常用search和match示例 - 编程语言 - 开发者第2241727个问答 Boost正则表达式库regex常用search和match示例 发表回复 Boo ...
 - C#正则表达式Regex常用匹配
		
使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是 ...
 - C#正则表达式Regex类的用法
		
C#正则表达式Regex类的用法 更多2014/2/18 来源:C#学习浏览量:36891 学习标签: 正则表达式 Regex 本文导读:正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串, ...
 - C#正则表达式Regex类
		
C#正则表达式Regex类的使用 C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间 ...
 - VS2010中使用boost正则表达式库
		
1.下载boost库.http://www.boost.org/ 我下载的是boost_1_51_0版本.放在D:\opensource\boost_1_51_0. 2.编译boost库. 执 ...
 - 请写出正则表达式(regex),取得下列黄色部分的字符串  TEL: 02-236-9655/9659 FAX:02-236-9654 (黄色部分即02-236-9655/9659 )  ( 测试面试题)
		
请写出正则表达式(regex),取得下列黄色部分的字符串 TEL: 02-236-9655/9659 FAX:02-236-9654 答: package test1; import java.uti ...
 - Python 正则表达式(RegEx)
		
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...
 
随机推荐
- 微信video最上层解决问题
			
/* http://blog.csdn.net/kepoon/article/details/53608190 */ //x5-video-player-type="h5" x ...
 - Confluence 6 配置服务器基础地址示例
			
如果 Confluence 的安装是没有安装在非根目录路径(这个是上下文路径),然后服务器基础 URL 地址应该包括上下文地址.例如,你的 Confluence 正在运行在下面的地址: http:// ...
 - Java编写一个随机产生小学生四则运算题30道
			
//注:这个程序还没有实现的地方为分数的计算方法未能实现,只是简单的两个数运算,没有实现多个数,四则运算中的数没有涉及0. package 课堂测试1; import java.io.File; im ...
 - hdu4990 转移矩阵
			
找了半天错发现m有可能是1.. /* 如果n是奇数,就进行(n/2)次转移,然后取F[2],反之取F[1] */ #include<bits/stdc++.h> using namespa ...
 - 2017-2018-2 20165314实验二《Java面向对象程序设计》实验报告
			
实验报告封面 实验一 实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习提交最后三个JUnit测试用例 ...
 - 解决beego中同时开启http和https时,https端口占用问题
			
在beego的app.go文件中, 找到 // run normal mode if BConfig.Listen.EnableHTTPS { go func() { time.Sleep( * ti ...
 - jQuery示例
			
<!DOCTYPE html><html lang="en" class="loading"><head> <meta ...
 - spring coud Feign常用配置
			
Ribbon配置 在Feign中配置Ribbon非常简单,直接在application.properties中配置即可,如: # 设置连接超时时间 ribbon.ConnectTimeout=500 ...
 - JAVA,字符串替换
			
package l515; //例5.15 //字符串替换 public class NewStr { public static void main(String[] args) { String ...
 - Python推荐系统库--Surprise理论
			
Surprise Surprise是scikit系列中的一个.Surprise的User Guide有详细的解释和说明 支持多种推荐算法 基础算法/baseline algorithms 基于近邻方法 ...