正则表达式
官方手册API----- 类pattern
1.字符类
/* [abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
*/
String regex = "[a-z&&[^m-p]]";
System.out.println("m".matches(regex));
System.out.println("a".matches(regex));
System.out.println("z".matches(regex));
System.out.println("n".matches(regex));
2.预定义字符类,Reluctant 数量词
3.正则表达式:切割功能 ----------split 属于string类中的方法
String s="a.b.cde.fghi";
String[] arr=s.split("\."); //由于点作为正则有意义的符号,需要转义才能作为分隔符 ,注意 转义 方向;
arr[i]=Integer.parseInt(str[i]); //string转int
4.正则表达式:替换功能-----------replaceAll 属于String类中的方法
5.正则表达式:分组
* 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
*
1 ((A)(B(C)))
2 (A
3 (B(C))
4 (C)
(.)\1(.)2 :1重复第一组; 2重复第二组 ;
思考题:
切割重复单词
6.正则表达式:提取
这里的$1 ,就是用前面匹配到的第一组字符去替换;$符是提取