Java 正则表达式 Pattern&Matcher

通常会有这种需求: 在文档中搜索有规律的字符串,然后进行统计或者替换。Java.util.regex包下的Pattern和Matcher这两个类提供了通过正则表达式来匹配查询,甚至替换的功能。那么我们接下来就举个栗子吧 :

栗子1:查找文件中以img_数字.png格式的字符串,并在前面添加路径: /test/img/

package test;

import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils;

public class PatternTest {

	private static final String CONSTSTRING = "<a><img src=‘img_01.png‘/></a>";
	public static void main(String[] args) throws Exception {
		File file = new File("C:\\Users\\Admin\\Desktop\\test.txt");
		FileUtils.writeStringToFile(file, CONSTSTRING);
		String str = FileUtils.readFileToString(file, "UTF-8");
		StringBuffer stringBuffer = new StringBuffer();
		//设置Pattern的正则表达式
		Pattern p = Pattern.compile("img_[0-9]+\\u002png");
		//按规则匹配
		Matcher m = p.matcher(str);
		while(m.find()){
			//将匹配到并替换后的字符串以及前面的字符串添加到StringBuffer中
			m.appendReplacement(stringBuffer, "/test/img/"+m.group());
			System.out.println(stringBuffer.toString());
			System.out.println();
		}
		//将匹配到的字符串之后的字符串添加到StringBuffer中
		m.appendTail(stringBuffer);
		FileUtils.writeStringToFile(file, stringBuffer.toString(), "UTF-8");
	}
}

  其实这个问题有个简单方法,这里扩展一下 :

package test;

import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils;

public class PatternTest {

    private static final String CONSTSTRING = "<a><img src=‘img_01.png‘/></a>";
    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\JD07201\\Desktop\\test.txt");
        FileUtils.writeStringToFile(file, CONSTSTRING);
        String str = FileUtils.readFileToString(file, "UTF-8");
        str = str.replace("img_", "/test/img/"+"img_");
        FileUtils.writeStringToFile(file, str, "UTF-8");
    }
}

  这个方法的前提是匹配条件必须只能映射到目标字符串,在这里就是指匹配条件"img_"必须等价于 "img_[0-9]+\\u002png",否则就有可能将不符合条件的字符串也给替换了。

  

时间: 2024-10-07 05:26:45

Java 正则表达式 Pattern&Matcher的相关文章

JAVA正则表达式 Pattern和Matcher

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编译后的表现模式. Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类

文字效果和表情图片:JAVA正则表达式 Pattern和Matcher、SpannableString与SpannableStringBuilder

在TextView和EditText加入表情或者设置文字效果可以使用: JAVA正则表达式 Pattern和Matcher SpannableString与SpannableStringBuilder

Java正则表达式Pattern和Matcher详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编译后的表现模式. Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类

Java正则表达式Pattern和Matcher类

转载自--小鱼儿是坏蛋(原文链接) 概述 Pattern类的作用在于编译正则表达式后创建一个匹配模式.    Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配 Pattern类常用方法及介绍 1.  Pattern complie(String regex)    由于Pattern的构造函数是私有的,不可以直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表 达式编译并赋予给Pattern类 2.  String pattern

JAVA正则表达式:Pattern类与Matcher类详解(转)

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

JAVA正则表达式:Pattern类与Matcher类详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

java之Pattern.compile相关正则表达式

java之Pattern.compile相关正则表达式 1.验证邮箱地址是否正确:String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; import java.util.regex.Matcher;//jar包 import java.util.regex.Pattern;//jar包 public static boolean chec

Java Pattern Matcher 正则应用

转自:http://www.itzhai.com/java-notes-regex-matches-and-lookingat.html#read-more 1.基本语法 2.String内建的正则表达式功能 2.1.String类自带的正则表达式工具 2.1.1.split方法 2.1.2.字符串替换之replaceFirst和replaceAll方法 3.创建正则表达式: 3.1.Pattern和Matcher 3.1.2.matches()与lookingAt()的使用 3.2.Group

正则表达式Pattern ,Matcher

正则表达式:符合一定规则的表达式 作用:用于专门操作字符串 特点:用于一些特定的符号来表示一些代码的操作,这样就简化代码的书写 学习正则表达式就是要学习一些特殊符号的使用 好处:简化对字符串复杂的操作 1. 匹配 String matches方法 2. 切割 String spilt方法 3. 替换 String repaceAll 4. 截取 将字符串中符合规则的子串取出 对QQ号进行校验 要去:5-15 0不能开头,只能是数字 String regex = "[1-9]\d{4,14}&qu