Regular Expression 正则表达式-4 (C++)

原创 2004年10月04日 20:58:00

因为总觉得上回写的C++代码太过蹩脚了,心有不甘。毕竟C++是一个很优秀的语言,并且有着众多出色的模板库,这么简单的一个小程序被我给用成那样,真的是太惭愧了。代码绝对不应该这么臃肿。实际上我有几个概念模糊不清了,所以导致了代码的臃肿,一个是输入输出流的概念模糊了,还有一个是正则表达式应用不熟悉。于是重温了输入输出流,并且详细的阅读了正则表达式的Boost库的说明文档。新写的代码如下,明显比原来的代码优雅了许多:

#include <string>
#include <boost/regex.hpp>
#include <iostream>
#include <fstream>
#include <sstream>

using namespace std;
using namespace boost;

string filter
( const string in )
{
    
regex expr("/"(//w+):(//w+)%(//w+)/"");
    
string fmt("$1:$2*$3,/n");
    
ostringstream ostring;
    
ostream_iterator<char> oi(ostring);

    
regex_replace( oi, in.begin(), in.end(), expr, fmt, (match_default | format_no_copy) );

    return
ostring.str();
}

int main
(int argc, const char* argv[])
{
    if(
argc < 3 )
    {
        
cout<< "Please enter 2 filenames(e.g. In.txt Out.txt)" << endl;
        return
1;
    }

    
ifstream in( argv[1] );
    
ofstream out( argv[2] );
    
ostringstream buf;

    
buf << in.rdbuf();
    
out << filter( buf.str() ) << flush;
}

正则表达式 Regular Expression

重新整理记录一下正则规则 定义 Regular Expression - 正规的/有规律的表达式,是计算机科学的一个概念。使用一个字符串来描述、匹配一系列符合某个句法规则的字符串 最...
  • u010297957
  • u010297957
  • 2016年04月05日 17:06
  • 687

正则表达式(Regular Expression)基本语法

一、简介 为什么需要正则表达式? 文本的复杂处理正则表达式的优势和用途? 一种强大而灵活的文本处理工具; 大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式定义: 正如...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015年04月29日 22:00
  • 4145

正则表达式攻击实例 Regular Expressions Denial of Service

实测数据如下: 30个a,耗时175毫秒 35个a,耗时950毫秒 40个a,耗时11242毫秒...
  • kewen303
  • kewen303
  • 2015年08月26日 14:18
  • 1720

3.2 re--正则表达式操作(Regular expression operations)

本模块提供了正则表达式的匹配操作,它的功能跟Perl语言里的功能一样。 无论是Unicode字符串还是单字节8位组成的字符串,都可以使用模式匹配和字符串查找的功能。不过要注意的是Unicode字符串与...
  • caimouse
  • caimouse
  • 2015年07月12日 08:02
  • 1571

leetcode 10 Regular Expression Matching(简单正则表达式匹配)

最近代码写的少了,而leetcode一直想做一个python,c/c++解题报告的专题,c/c++一直是我非常喜欢的,c语言编程练习的重要性体现在linux内核编程以及一些大公司算法上机的要求,pyt...
  • wangyaninglm
  • wangyaninglm
  • 2017年02月21日 01:19
  • 1046

【LeetCode010算法/编程练习C++】Regular Expression Matching//挺烦的一条……

10. Regular Expression Matching Total Accepted: 113015 Total Submissions: 481908 Difficulty: ...
  • zmdsjtu
  • zmdsjtu
  • 2016年12月27日 16:09
  • 546

正则表达式(regular expression)特殊字符(special charactors)1

注:文中例子使用Python中的正则表达式re模块。 1. 原意字符 正则表达中最基本的字符是单个原意字符。例如p中的’a',匹配s中的单个'a', 匹配位置在s中第一次出现a的位置。 >>...
  • bdss58
  • bdss58
  • 2015年01月31日 23:57
  • 701

10. Regular Expression Matching-动态规划/递归回溯

mplement regular expression matching with support for '.' and '*'. '.' Matches any single character...
  • u011567017
  • u011567017
  • 2016年09月11日 21:40
  • 605

Syntax error on token "Invalid Regular Expression Options", no accurate corr

1、选中报错的文件 2、右键选择 MyEclipse-->Exclude From Validation  3、再右键选择 MyEclipse-->Run Validation...
  • tianya9006
  • tianya9006
  • 2016年03月11日 16:36
  • 1528

工具分享--RegularExpressionTool(正则表达式测试工具)

最近翻电脑硬盘,意外发现了一个自己开发的正则测试工具。至从开发完该工具后,就一直很少使用它,比较可惜,现在把它开源出来分享给大家。下面是该工具的一些截图,发来给各位围观下:主界面 测试正则,能察看组捕...
  • ghostbear
  • ghostbear
  • 2013年03月11日 09:41
  • 2558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Regular Expression 正则表达式-4 (C++)
举报原因:
原因补充:

(最多只允许输入30个字)