Java SE之正则表达式五:切割

/**
 * 
 * @author Zen Johnny
 * @date 2018年4月29日 下午3:53:55
 *
 */
package demo.regex;
/*
 	正则表达式:切割
 */
public class RegexSplitDemo {
	public static void splitNames(String string) {
		String[] names = string.split("(,|\\s|\\.|;)+");//按照多个空格或者逗号或者分号切割,此处不要用*
		for(String item:names)
				System.out.println(item);			
	}
	
	//切割文件目录
	public static void splitDirs(String string) {
		String[] dirs = string.split("\\\\+");
		for(String item:dirs)
				System.out.println(item);		
	}
	
	public static void namesTest() {
		splitNames("张三,李四,王五");
		splitNames("张三     ;李四           ,.;王五");
		/*
		张三
		李四
		王五
		张三
		李四
		王五
		*/
	}
	public static void dirsTest() {
		splitDirs("C:\\Desktop\\project\\data.txt");
		/*
		C:
		Desktop
		project
		data.txt
		*/
	}
	
	public static void splitDemo(String string, String regex) {
		String[] items = string.split(regex);
		for(String item:items)
				System.out.println(item);		
	}
	
	public static void main(String args[]) {
//		namesTest();
		
		dirsTest();
		
		splitDemo("32432443styddxcccccdcfeweertryt", "(.)\\1+");//按照叠词切割,+号表示前面邻近的规则执行多次
		/*
		 	【重点:\1】
			为了让规则的结果被重用,可以让规则封装成一个组,用()完成。组的出现都有编号:从1开始想要使用已有的组可以通过格式:\ + 组序号
			Eg:以叠词作为分隔符号,"(.)\1"
		*/
	}
}

  

猜你喜欢

转载自www.cnblogs.com/johnnyzen/p/8971429.html