`

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

    博客分类:
  • 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");
	}

}


分享到:
评论

相关推荐

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

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

    Python程序设计:正则表达式检索与替换.pptx

    获取 的功能是正则表达式来提取字符串中符合要求的文本; 替换 的功能是查找字符串中符合正则表达式的文本,并用相应的字符串替换; 分割 的功能是使用正则表达式对字符串进行分割。 正则表达式检索与替换 正则...

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

    易语言正则表达式类匹配中文源码,正则表达式类匹配中文,创建,取正则文本,替换,取匹配数量,取匹配文本,取子匹配文本,取子匹配数量

    常用java正则表达式

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

    使用正则表达式的模式匹配

    JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。 ECMAScript v3对JavaScript正则表达式进行了标准化。JavaScript 1.2实现了ECMAScript v3...

    JS正则表达式的使用以video标签为例

    使用JS正则表达式,选取video元素的src属性的值,利用jQuery选取元素

    Delphi 10.4 最新版正则表达式(TRegExpr)源码

    正则表达式易于使用,功能强大,可用于复杂的搜索和替换以及基于模板的文本检查。这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索...

    JAVA 正则表达式 教程

    正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率。 正则表达式应用于程序设计语言中,...

    C#中利用正则表达式实现

    正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成...

    C#字符串和正则表达式参考手册.pdf

    在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则...

    正则表达式之道.doc

    绝大部分的例子是基于vi中的文本替换命令和grep文件搜索命令来书写的,不过它们都是比较典型的例子,其中的概念可以在sed、awk、perl和其他支持正则表达式的编程语言中使用。你可以看看不同工具中的正则表达式这一节...

    正则表达式测试工具,美观功能强大!

    3、支持正则表达式匹配与替换,子匹配单独显示,单独选择 4、支持正则表达式的历史记录与收藏,如百度搜索自动显现 5、靠边隐藏 详情见博文:https://blog.csdn.net/weixin_44182128/article/details/122676797

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式匹配的数组单元 正则表达式的替换.php 正则...

    java正则表达式.docx

    本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache...

    正则表达式工具类

    典型的搜索和替换操作要求您提供与预期的搜索结果...可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。 基于模式匹配从字符串中提取子字符串。 可以查找文档内或输入域内特定的文本。

    精通 JavaScript正则表达式

    正则表达式可以: ...可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字

    Jmeter正则表达式扩展

    正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 1.匹配字符 [ ] 匹配这个范围内的任意字符;如,[a-z]匹配小写字母a到z这个范围的任意字符 . 匹配任意字符; \w 匹配字母或数字、或下划线。 \W 匹配...

    正则表达式简明教程及正则表达式语言元素

    正则表达式的全面样式匹配表示法使您可以快速分析大量文本以找到特定的字符样式,提取、编辑、替换或删除文本子字符串,或将提取的字符串添加到集合以生成报告。对于处理字符串(例如 HTML 处理、日志文件分析和 ...

    正则表达式

    正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。...正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

    Java正则表达式详解

    如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...

Global site tag (gtag.js) - Google Analytics