📄 regexexamples.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 + -