⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regexexamples.java

📁 替换jsp中的中文为sturts中的bundle
💻 JAVA
字号:
package com.pengjj.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * <p>Title: 测试各种正则表达式实例</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: digitalchina</p>
 * <p>FileName: RegexExamples.java</p>
 * @author pengjja Sep 19, 2006
 * @version 1.0
 */
public class RegexExamples {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		RegexExamples  regexExample = new RegexExamples();
		regexExample.appendReplacement();
	}
	/**
	 * 获得从开始处到替换处的位置
	 */
	private void appendReplacement(){
		//用圆括号进行分组,两组
		String regex = "(ca)(ft)";
		String replace = "dog";
		String result = "";
		String content ="Cat two cats in the yard \n#cat\n" ;
		result = this.appendReplacement(regex,replace,content);
		System.out.println(result);
	}
	/**
	 * 获得从开始处到替换处的位置
	 * @param regex 查找的内容
	 * @param replace 替换的内容
	 * @param content 替换后的内容
	 * @return  替换后的内容
	 */
	public String appendReplacement(String regex, String replace, String content) {
		//多种匹配模式:忽略大小写、多行匹配等
		Pattern p = Pattern.compile(regex,Pattern.MULTILINE|Pattern.CASE_INSENSITIVE);
		Matcher m = p.matcher(content);
		StringBuffer result = new StringBuffer();
		//整个匹配
		if(m.matches()){
			String s = m.replaceAll(replace);
			System.out.println("matched----"+s);
		}
//		if(m.lookingAt()){
//			String s = m.replaceAll(replace);
//			System.out.println("lookingat----"+s);
//		}
		//find:从当前处继续往下查找,匹配第一处后,从第一处的结尾处继续往后查找
		while (m.find()) {
			//从开始处到替换结束处的文本
			m.appendReplacement(result, replace);
			/**
			 * 匹配开始位置
			 */
			System.out.println("start--" + m.start());
			//匹配分组1的开始位置(分组1的第一个字符)
			System.out.println("start(1)--" + m.start(1));
			//匹配分组2的开始位置(分组2的第一个字符)
			//System.out.println("start(2)--" + m.start(2));
			
			/**
			 * 匹配结束位置
			 */
			System.out.println("end--" + m.end());
			//匹配分组1的结束位置(分组1的最后一个个字符)
			System.out.println("end(1)--" + m.end(1));
			//匹配分组2的结束位置(分组2的最后一个个字符)
			//System.out.println("end(2)--" + m.end(2));
			
			/**
			 * 分组的具体情况
			 */
			System.out.println("group--" + m.group()+"--");
			//分组1
			System.out.println("group(1)--" + m.group(1)+"--");
			//System.out.println("group(2)--" + m.group(2)+"--");
			//分组的总数
			System.out.println("group count--" + m.groupCount());
		}
		//将剩余没有匹配的部分append到结果中
		m.appendTail(result);
		return result.toString();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -