java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)
package test;
import java.util.regex.matcher;
import java.util.regex.pattern;
/**
* 正则表达式
* 正则表达式 的用法主要是4种方面的使用
* 匹配,分割,替换,获取.
* 用一些简单的符号来代表代码的操作
* @author cyc
*
*/
public class rex {
public static void main(string[] args) {
//针对字符串处理
rex reg = new rex();
//校验qq的reg正则表达式
//这里的\w 是指的是[a-za-z0-9],还有一个重要的是?,*. 这三个分别
//?表示出现1次或者1次都没有,
// 表示出现1次或者n次,
//*表示出现0次或者n次,
//还有些特殊的写法x{n}恰好n次x{n,}至少n次,x{n,m}n次到m次,
string mathreg = "[1-9]\\d{4,19}";
string divisionreg = "(.)\\1 ";
//\\b 是指的边界值
string getstringreg = "\\b\\w{3}\\b";
//字符串匹配(首位是除0 的字符串)
reg.getmatch("739295732",mathreg);
reg.getmatch("039295732",mathreg);
//字符串的替换
//去除叠词
reg.getreplace("12111123asdasdaaaddd",divisionreg,"$1");
//字符串的分割
//切割叠词,重复的
//这里要知道一个组的概念(.)\\1第二个和第一个至相同
reg.getdivision("aadddddasdasdasaaaaaassssfq",divisionreg);
//字符串的获取
//现在获取三个字符串取出
reg.getstring("ming tian jiu yao fangjia le ",getstringreg);
}
/**
* 获取查询的字符串
* 将匹配的字符串取出
*/
private void getstring(string str, string regx) {
//1.将正在表达式封装成对象patten 类来实现
pattern pattern = pattern.compile(regx);
//2.将字符串和正则表达式相关联
matcher matcher = pattern.matcher(str);
//3.string 对象中的matches 方法就是通过这个matcher和pattern来实现的。
system.out.println(matcher.matches());
//查找符合规则的子串
while(matcher.find()){
//获取 字符串
system.out.println(matcher.group());
//获取的字符串的首位置和末位置
system.out.println(matcher.start() "--" matcher.end());
}
}
/**
* 字符串的分割
*/
private void getdivision(string str, string regx) {
string [] datastr = str.split(regx);
for(string s:datastr){
system.out.println("正则表达式分割 " s);
}
}
/**
* 字符串的替换
*/
private void getreplace(string str, string regx,string replacestr) {
string stri = str.replaceall(regx,replacestr) ;
system.out.println("正则表达式替换" stri);
}
/**
* 字符串处理之匹配
* string类中的match 方法
*/
public void getmatch(string str, string regx){
system.out.println("正则表达匹配" str.matches(regx));
}
}
风清花香