=====文件名:RegExDemoMain.cpp=====
/***************************************************************
* Name: RegExDemoMain.cpp
* Purpose: Code for Application Frame
* Author: emonkey (dqifa@163.com)
* Created: 2012-10-08
* Copyright: emonkey (http://emonkey.iteye.com/)
* License:
**************************************************************/
#include <wx/regex.h>
#include <wx/textfile.h>
#include <wx/log.h>
#include <wx/dcclient.h>
void RegExDemoFrame::OnAbout(wxCommandEvent& event)
{
wxRegEx r;
wxTextFile fin;
wxTextFile fout("outfile.txt");
fout.Create();
r.Compile("\\D*\\d+\\s?[.|:|\\]|\\)]?\\s?",wxRE_ADVANCED);
fin.Open("testfile.txt",wxConvAuto(wxFONTENCODING_CP936));
//要加上wxConvAuto(wxFONTENCODING_CP936),否则中文会出现乱码
if(fin.IsOpened())
{
wxString line,s;
for(line=fin.GetFirstLine(); !fin.Eof(); line=fin.GetNextLine())
{
if(r.Matches(line))
{
// wxMessageBox(r.GetMatch(line));
r.Replace(&line,"",1);
}
s<<line<<"\n";
fout.AddLine(line);
}
//上面调用AddLine()方法并未将数据写入物理文件,所以一定要调用
//Write( wxTextFileType typeNew = wxTextFileType_None,
//const wxMBConv & conv = wxConvAuto() )方法,该方法调用成功时返回true.
if(fout.Write(/*wxTextFileType_None,wxConvAuto(wxFONTENCODING_CP936)*/))
{
wxLogStatus("“testfile.txt”文件到“outfile.txt”文件转换已完成!");
// wxLogStatus("文件转换已完成!");
}
fout.Close();
fin.Close();
//显示转换后的文件
wxClientDC dc(this);
wxFont font;
font.SetPointSize(12);
dc.SetFont(font);
dc.SetTextForeground(wxColour(128,0,0));
dc.DrawText(s,20,10);
}
}
参考:
1、Python正则表达式如何删除代码行
http://www.wv168.com/HTML/PYTHON/2012/0627/6149.html
2、wxWidgets文件操作(二)wxTextFile
http://www.cnblogs.com/godspeedsam/archive/2011/03/16/1986302.html
- 大小: 17.2 KB
分享到:
相关推荐
例如,如果行号是连续的数字且位于每行的开头,我们可以使用类似`^\d+ `(这里`\d`代表数字,`+`表示一个或多个)的正则表达式来匹配这些行号。`^`符号表示匹配行的开始,空格` `则匹配行号之后的空格。 去除这些...
本文将详细介绍如何通过`awk`和正则表达式的搭配使用来实现各种文本处理需求。 #### 二、基础概念回顾 **1. sed** `sed` (stream editor) 是一种流编辑器,用于对输入流进行文本变换和过滤。它可以用来自动执行...
- **定义**:`grep` 是 Linux 和 Unix 系统中的一种强大的文本搜索工具,它能够使用正则表达式来搜索文本,并将匹配的行打印出来。其全称是 Global Regular Expression Print,意为全局正则表达式版本。 - **功能**...
两者都可以使用正则表达式作为模式,当匹配到模式时执行相应的动作。正则表达式的元字符如`.`、`*`、`^`、`$`、`[]`和`\`都有特殊的含义。例如,`^the$`会匹配以"the"开头且以"the"结尾的完整单词。 在实际使用中,...
在MyEclipse中,你可以通过以下步骤使用此正则表达式去除行号: 1. 打开你含有行号的代码文件。 2. 按下快捷键 "Ctrl + F",这将打开查找/替换对话框。 3. 在 "查找" 文本框中输入上面的正则表达式 `^\s*\d+\.`。 4....
在输入了正则表达式后,可以将其应用于整个文件中,替换功能会自动找到所有匹配该模式的行,并去除行号部分。这样,原本带有行号的代码就会被转换成没有行号的标准代码格式,可以直接用于开发和调试。 除了使用...
在这个应用中,开发者可能定义了一个正则表达式来匹配源代码中的行号,例如以数字开头的行,然后使用Java的String类方法如replaceAll()来执行替换操作,从而达到删除行号的目的。 【压缩包子文件的文件名称列表】中...
例如,在正则表达式模式下,可以使用`^\d+\s`作为查找模式,它会匹配以数字开头且后面跟着空格的行。 3. **使用编程语言处理**: - Python: 可以使用`pandas`库读取代码文件,然后使用`drop()`函数移除包含行号的...
在处理大型文本文件时,可能需要去除行号以便于数据分析或格式化输出。Perl的文本处理能力非常强大,通过读取文件,逐行处理,然后跳过包含行号的行,可以轻松实现这一目标。例如,脚本可能会使用内置的文件处理循环...
例如,如果行号用空格隔开,可以使用`\s*\d+\s*`作为匹配模式。 3. **字符串处理**:处理后的每一行代码可能包含行号和代码,我们需要使用`String`类的方法如`substring()`或`replaceFirst()`来移除行号部分,只...
接下来,需要在查找框中输入正则表达式,用于匹配行号和换行符,而在替换框中输入空字符串,以此实现去除行号的目的。 正则表达式“^\s*\d+\n”中的各个部分含义如下: - “^”符号表示匹配字符串的开始位置。 - ...
这个工具可能是通过正则表达式或其他文本处理技术,查找并移除这些行号标记。 在实际操作中,使用这样的工具通常很简单,只需打开它提供的界面或者通过命令行执行,指定要处理的C#源代码文件,然后工具会处理文件并...
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找 “ \n” 时会提示查找不到,所以也就无法进行替换了,这时可以把“(”、“)”使用任意...
我们利用jd-gui反编译.classs代码之后,导出来的java源代码里面含有/**,其实这些标记是之前的java源码的注释,我们如何去掉这些标识了?...原理很简单,用java的正则表达式清理每个文件中的jd相关的注释
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找 “<script LANGUAGE="JavaScript1.1">\n<!--\nhtmlAdWH('93163607', '728', '90'.);\n//-...
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找 “<script LANGUAGE="JavaScript1.1">\n<!--\nhtmlAdWH('93163607', '728', '90'.);\n//-...
在源码中,我们可以期待看到它使用`BufferedReader`读取文件,使用正则表达式或其他方法移除行号,然后使用`PrintWriter`将处理后的文本写入新文件。 总结来说,这个Java小工具是为了解决一个常见的文本处理问题...