import java.util.Arrays;
/*
* 正則表達式
* 預定義字符:
* . 任何字符(与行结束符可能匹配也可能不匹配)
* \d 数字 [0-9]
* \D 非数字[^0-9]
* \s 空白字符 [\t\n\x0B\f\r]
* \S 非空白字符 [^\s]
* \w 组成单词的字符[a-zA-Z_0-9]
* \W 非单词字符 [^\w]
* 注意:元字符只能匹配一个字符
* 匹配多位:
* ? 匹配0次或者一次;
* x* 匹配0次或多次
* + 出现1次或多次
* {n} 出现n次
* {n,} 出现至少n次
* {n,m} 出现n到m次
* 范围
* [abc] a,b或c
* [^abc] 任何字符,出了abc以外
* [a-zZ-Z] a到z或者A到Z, 包含开头和结尾
* [a-d[m-p]] a到d 或 m到p [a-dm-p】并集
* [a-z&&[def] d,e或f 交集
* 注意:范围也是只匹配一个字符,如果要匹配数量,需要使用数量多位匹配
*
*
* 正则表达式的作用:
*
* 1. 匹配
* 如果正则表达式的内容需要被复用,那么就需要对正则表达式进行分组,目的是复用匹配内容。组号不能指定,是从1开始的。
* (rgex)用括号进行分组
* \1 表示第一组的内容
* \2 表示第二组的内容
*
*
* 2. 切割
*
* 2. 替换
*
* 4. 查找
*
*/
public class Demo5 {
public static void main(String[] args) {
System.out.println("%".matches("."));
System.out.println("9".matches("\\d"));
String str = "大家家家明天天天天回很开开心心心的回家家乐";
String[] arr = str.split("(.)\\1+");
System.out.println(Arrays.toString(arr));
}
}