正则表达式的作用:
对目的文本特征进行描述,并通过特征匹配,进而对输入文本进行处理。
(1)对输入文本进行规约。
(2)对输入文本进行筛选,进而处理成我们想要的样子。
符号的意思:
1.[] 代表集合内的任意字符;
2.()捕捉组,内部描述的一个文本块,捕捉组编号从1开始,从左到有数括号,\组号是对对应捕捉组的引用;
3.{} 设定前边字符的出现次数。可以是{n}指定出现n次,{n,}至少出现n次。 {n,m}出现n-m次。
4.\d 表示任意数字(0-9)(\D 任意非数字)
5.\s 表示任意空白字符(\t \n \r \x0b \f)(\S任意非空白字符)
6.\w 表示任意单词字符(0-9a-zA-Z_)(\W任意非单词字符)
7.^ 表示行的开始,$表示行的结束
8.\b单词的范围(\bword\b)
9.x? 代表x出现最多一次
10.x*代表x出现任意次
11.x+代表x出现至少一次
12 点儿代表任意字符。.*表示任意数量的任意字符。
正则的模式:
(?i)+ 正则表达式:表示忽略大小写进行匹配。
(?x)+正则表达式: 表示可以在后边加注释,#号开头直到行尾都算注释。
正则的方法:
Pattern p = Pattern.complie("regex");//正则对象需要这个方法建立;
string[] str = p.split("text");//按正则匹配的文本作为分隔符,截取文本为字符串数组;---对应string的方法str.split("regex");
Pattern.matches("regex","text")//静态方法,返回值是true或者false;---对应的string方法 str.matches("regex","text");
matcher的方法:
Macher m = p.macher("text")
m.lookingAt() // 局部匹配就返回true;
m.matches() // 整体匹配才返回true;
m.replaceAll("replace") or m.replaceFirst("replace") .//对匹配文本进行替换。---对应string的方法str.replace()
m.start() or m.end() //返回匹配的开始索引号,和结束索引号+1.还可以传入捕捉组号,返回指定部分的索引位置。