正则表达式是用特殊字符来表示字符串
作用:
1匹配:Stringmatches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束。返回false
2切割:Stringsplit();
1)按照多个空格进行切割
Stringreg=“+”;
2)按照.切割
Stringreg=“\\.”;
3)Strings="D:\\abc\\a.txt";按照\\切割
Stringreg=“\\\\”;
4)叠词的切割;
Stringreg=“(.)\\1+”;
3替换Stringreplaceall方法。把字符串中的符合规则的部分替换成另外的部分。
1)叠词的替换。
eg:Strings=“asdfgddddwwwwawgagsdfg”;
Stringreg=“(.)\\1+”;
replaceall(reg,s);
注:\1与$1的区别,前者表示在一个正则表达式中的第一个组的内容,而后者表示在正则表达式之外引用该正则表达式中的组名并表示组的内容。
在正则表达式中从左到右有几个左括号就有几个组,并且组号是从1开始,0表示整个正则表达式。
如(((()))()(()))有7个组
2)普通的替换。
4获取。按照规则把符合规则的字串取出来。将字符串中符合规则的子串取出。
1)将正则表达式封装成对象
Pattern对象
2)让正则表达式和要操作的字符串相关联
3)关联后,获取正则匹配引擎
4)通过引擎对符合规则的字串进行操作,比如取出。
Stringstr="要操作的字符串";
Patternp=Pattern.compile(reg);
Matcherm=p.matcher(str);
//将规则作用到字符串上,并进行符合规则的子串查找。
m.find();
//用于获取匹配后的结果
m.group();
while(m.find())
{
m.group();
}
注:不要使用Matcher对象的matches的方法,因为matches方法匹配的是整个字符串,而如果先使用了matches方法以后再使用Matcher对象的find方法,会以完成matches方 法后的指针指向后续的字符串。而不会重新开始。同一个匹配器使用的是同一个指针。
后面这篇博客很详细的介绍了正则表达式的使用:
http://blog.csdn.net/txl690956710/article/details/8302079