具有操作功能:
1.匹配:用String matches()方法匹配整个字符串,只要有1处不符合,就返回false
2.切割:String split()
**
3.替换:String replaceAll()
4.获取
**预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
Greedy 数量词
X? X,一次或一次也没有
X X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
为了可以让规则的结果被重用,可以将规则封装成组,用小括号完成,组的出现都有编号,**
从1开始,想要使用已有的组,可以通过\n(n就是组的编号)的形式来获取
public class RegexDemo01 {
public static void main(String[] args) {
//demo();
//checkEmail();
//checkQQ();
//checkTel();
//splitDemo();
replaceAllDemo();
}
//替换字符串
public static void replaceAllDemo(){
//要求,将字符串中的数字替换成#
/*String str = “nby3hjkjdhsajkdgahkfajkbmcuey6783264329grbhwkegy369123eqbdu”;
String reg = “\d{5,}”; //连续超过5个的,数字(\d)
String newStr = “#”;*/
//要求:将叠词替换成$号 将重叠的字母替换成单个字母aaaa->a
String str = “dasfaaaafdsgsgggggggggggggregtr”;
String reg = “(.)\1+”; //组,重复出现1次或多次
String newStr = "$1\ " ; / / 替换成 "; //替换成