正则

package fff;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class string {
	public static void main (String[] args){
		String one = "ab";
		String two = "[abf]{2}";   //这个规则是说只能是abf中的其中一个数据     大括号是限制能有多少个数
		System.out.println(one.matches(two));  //进行匹配    待匹配作为第一参数    匹配规则作为第二参数
		
		splitdemo("adgksialdialdfffsdg","(.)\\1");   //按照叠词完成切割
		
		splitdemo("adgksialdialdfffsdg","(.)\\1+");   //按照相同词完成切割
		
		splitdemo("adgksi\\aldialdfffsdg","\\\\");   //按照反斜杠完成切割      反斜杠一定是成对存在的
		
		//对替换方法使用正则表达式
		String str = "jlslaedkaldifffdka";
		replaceAll(str,"(.)\\1+","$1");  //把叠词替换成只有一个词               $1是拿前面规则的第一个组。。
		
		getDemo();   //使用匹配器和匹配对象
		
		String term = "我要。。要";
		System.out.println(term.replaceAll("。", ""));//这样子就相当于把句号去掉,那个空格是摆设用的。。。
		
		//检验邮箱
		checEmail();
	}
	private static void checEmail() {  //检查邮箱格式
		// TODO Auto-generated method stub
		String qq = "[email protected]";
		String geshi = "[a-z0-9A-Z]+@[a-z0-9A-Z]+(\\.[a-zA-Z]+)+";  //这是精确格式的定义
		String geshi1 = "\\w+@\\w+(\\.\\w+)+";   //这是不精确的格式定义
		System.out.println(qq.matches(geshi));
		System.out.println(qq.matches(geshi1));
	}
	private static void getDemo() {    //获取能够连续构成三个字母的字符串
		// TODO Auto-generated method stub
		String str = "ming tian jiu yao fang jia le , da jia . ";
		String reg = "[a-z]{3}";
		//将规则封装成一个对象
		Pattern p = Pattern.compile(reg);
		//让规则对象和要作用的字符串相关联后获取一个代表匹配器的对象
		Matcher m = p.matcher(str);   //Matcher才是最底层的类,String类的很多方法都是以这个为基础调用的。。。
		//对匹配器对象可以判断时候有需要的数据,也可以由匹配器对象来获取需要的数据
		while(m.find()){	//用于寻找匹配的子窜
			System.out.println(m.group());    //用于获取寻找到的子窜
			System.out.println(m.start()+"******************"+m.end());  //用来获取寻找到的子窜的位置
		}
	}
	private static void replaceAll(String str, String string, String string2) {
		// TODO Auto-generated method stub
		str = str.replaceAll(string, string2);
		System.out.println(str);
	}
	public static void splitdemo(String str,String reg){
		//String reg = " +"; // 按照多个空格来进行切割       对切割方法也可以使用正则表达式
		String[] arr = str.split(reg);
		System.out.println(arr.length);
		for(String s : arr){
			System.out.println(s);
		}
	}
}



你可能感兴趣的:(正则)