`

利用正则表达式来替换文本中匹配正则的内容

    博客分类:
  • java
阅读更多

今天同事的一个问题,我写了个demo,替换掉文本中的满足IP格式的字符串,替换成需要更改的。

IP格式没有严格写,简单弄个demo。这个可以演变成查询日志,替换或者标红关键字等。

对于其中的正则等java类可参看http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestFile
{
	static final String REGEX_IPV4 = "(\\d{1,3}\\.){3}\\d{1,3}";
	static final String ENCODE = "UTF-8";
	BufferedReader br = null;
	BufferedWriter bw = null;

	public void copyFile(String ip) throws IOException
	{
		try {
			Pattern pattern = Pattern.compile(REGEX_IPV4);
			br = new BufferedReader(new InputStreamReader(new FileInputStream(
					"d:/A.txt"), ENCODE));
			bw = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream("d:/B.txt")));
			String line = null;
			while ((line = br.readLine()) != null) {
				StringBuffer sbr = new StringBuffer();
				Matcher matcher = pattern.matcher(line);
				while (matcher.find()) {
					// 有字符串fatcatfatcatfat,假设既有正则表达式模式为"cat",第一次匹配后调用appendReplacement(sb,"dog"),那么这时StringBuffer
					// sb的内容为fatdog,也就是fatcat中的cat被替换为dog并且与匹配子串前的内容加到sb里,而第二次匹配后调用appendReplacement(sb,"dog"),那么sb的内容就变为fatdogfatdog,如果最后再调用一次appendTail(sb),那么sb最终的内容将是fatdogfatdogfat。
					matcher.appendReplacement(sbr, ip);
				}
				// 将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里
				matcher.appendTail(sbr);
				bw.write(sbr.toString());
				bw.newLine();
			}
		} catch (IOException e) {
		} finally {
			bw.close();
			br.close();
		}

	}

	public static void main(String[] args) throws IOException
	{
		new TestFile().copyFile("255.255.255.0");
	}

}


分享到:
评论

相关推荐

    易语言正则表达式文本替换

    例如,"子程序_正则文本替换"可能就是一个易语言中用于执行正则表达式替换的子程序,它接收输入的文本、正则表达式模式和替换字符串,然后返回经过替换操作的新文本。 1. **正则表达式基础** - **元字符**:如`.`...

    wps表格excel正则工具,excel正则表达式替换/匹配/查找/搜索/提取数字

    而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...

    正则表达式替换文本_everyrk3_正则表达式_正则表达式替换文本_

    "正则表达式替换文本"是指利用正则表达式的规则,对文本中的特定模式进行查找并替换的操作,这在文本处理中非常常见。 正则表达式的基本元素包括: 1. **字符**:例如"a", "b", "#"等,它们可以匹配自身。 2. **元...

    易语言正则表达式匹配中文

    例如,“正则表达式查找”命令可以找到字符串中所有匹配的子串,“正则表达式替换”则可以将匹配的子串替换成新的内容。 在编程实践中,我们可能会遇到一些挑战,如性能优化、错误处理等。例如,如果待处理的字符串...

    易语言正则表达式类匹配中文

    例如,对于一个新闻网站,可以利用正则表达式类匹配中文源码来提取文章标题或关键词,或者在用户输入的搜索查询中进行模糊匹配,提高搜索效率。 通过易语言提供的正则表达式类,我们可以高效地处理中文文本,进行...

    【cad开发】在lisp中应用正则表达式

    (xxexpr)函数用于对字符串进行正则表达式替换,返回替换后的字符串。 在CAD二次开发软件LISP中应用正则表达式可以解决许多文本编辑的问题,例如,提取字符串中的特定模式、替换字符串中的某些内容等。同时,正则...

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    正则表达式转换工具

    正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...

    正则表达式测试工具C#版(src)

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...

    pb 使用正则表达式源码pbregexp

    标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...

    正则表达式替换工具 1.1.0.9

    正则表达式替换工具1.1.0.9是一款专为处理文本字符串而设计的强大工具,它能够帮助用户测试和执行正则...通过正则表达式替换工具1.1.0.9,用户可以更方便地应用这些正则表达式规则,解决实际工作中的各种文本处理需求。

    vb正则表达式实例(正则表达式测试程序)

    下面将详细探讨正则表达式的基本概念、在VB.NET中的应用以及如何使用它们进行文本匹配。 1. 正则表达式基础 - **模式匹配**:正则表达式是一种特殊的字符序列,用于定义字符串的搜索模式。 - **元字符**:如 `.`...

    精通正则表达式(第三版)简体中文版

    1. **文本搜索**:利用正则表达式快速定位文本中的特定模式。 2. **数据验证**:如邮箱格式验证、日期格式验证等。 3. **文本替换**:基于模式对文本进行替换操作,如去除HTML标签、转换大小写等。 4. **数据提取**...

    正则表达式(regex)C语言源码,超强查找/替换算法

    正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,它用于在字符串中查找、替换或匹配特定模式。在C语言中,实现正则表达式功能通常需要借助第三方库,比如本案例中提到的Henry ...

    MFC中利用正则表达式进行密码匹配

    3. **正则表达式(Regular Expression)**:正则表达式是一种模式匹配语言,用于在字符串中搜索、替换或提取特定模式。例如,我们可以用正则表达式确保密码包含大写字母、小写字母、数字和特殊字符,以提高其安全性...

    C语言正则表达式库

    在C语言中,使用正则表达式库可以实现复杂的文本搜索、替换和分析操作,而无需编写复杂的字符串处理代码。PCRE库提供了丰富的API接口,包括编译正则表达式、执行匹配、获取匹配结果等。 PCRE库的特性包括: 1. **...

    VC、VC++,MFC 正则表达式类库

    总的来说,MFC的正则表达式类库提供了一个高效且易于使用的接口,使得VC++开发者能够方便地在Windows应用程序中处理复杂文本模式。了解并熟练掌握这些类和方法,有助于提升文本处理部分的代码质量及效率。

    Lucene 使用正则表达式

    在Lucene中,可以通过`regexQuery`来利用正则表达式进行复杂条件的匹配,从而实现更精确的搜索需求。 #### regexQuery详解 `regexQuery`是Lucene提供的一个用于执行正则表达式查询的方法。它接受一个`Term`对象作为...

    易语言正则表达式取网址和名称

    在IT行业中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在本案例中,“易语言正则表达式取网址和名称”指的是使用易语言这一编程环境,结合正则表达式技术来从文本中...

Global site tag (gtag.js) - Google Analytics