------- android培训、java培训、期待与您交流! ----------
正则表达式
好处:正则的出现,是操作字符串更加简便,简化了代码
特点:将对字符串操作的代码用符号表示,只要使用了指定符号,就可以调用底层代码对字符串进行操作
弊端:降低了阅读性,更多是用正则解决字符串操作问题
组:用小括号标示,每定义一个小括号,就是一个组,而且有自动编号,从1开始。
只要使用组,对应的数字就是使用该组的内容。别忘了,数组要加\\。
(aaa(wwww(ccc))(eee))技巧,从左括号开始数即可。有几个左括号就是几组。
$:可以在多参数时,后面的参数可以通过$编号的形式取到前一个参数的组
\\.:切割去掉小数点
(.)\\1+:切割叠词
正则常见操作:
匹配:使用的是String类中提供了匹配的方法matches方法,返回的boolean类型
Stringtel=”13388880000”
Stringregex=“1[3,5,8][0-9]{9}“//校验手机号码是否正确
Booleanb=tel.matches(regex);syso(b);
切割:使用的是String类中的split方法
Stringtemp=”zhangsan lisi wangwu”;String temp=” zhangsan.lisi.wangwu”;
Stringregex=” +”; String regex=”\\.”;//按点切割
Stringtemp=”eiaofjowwwwifea%%%%eao”; String regex=”(.)\\1+”;
Stringnames=temp.split(regex);for(String name:names){syso(name)}
替换:String temp=”15800001111”;//替换中间的四位
temp=temp.replaceAll(“(\\d{3}\\d{4}(\\d{4}))”,”$1####$2”);
获取:要想实现获取,将符合规则的内容取出来,用到正则表达式对象pattern
将字符串规则封装成pattern对象 compile(regex),
通过正则对象获取匹配对象,用对将正则规则作用到要操作的字符串上
通过匹配器的方法,,对字符串进行操作
获取字符串中符合规则的内容。
Stringtemp=”da jia zhu yi le ,ming tian yao fang jia la ”
Stringregex=”\\b[a-zA-Z]{3}\\b”;
Patternp=Pattern.compile(regex);Matches m=p.matches(temp);
While(m.find()){syso(m.group())}
例子://对ip地址进行排序
Stringtemp="192.168.1.200 017.10.10 003.3.50.3127.0.0.1";
temp=temp.replaceAll("(\\d+)","00$1");//补两个0
temp=temp.replaceAll("0*(\\d{3})","$1");//去掉数子前面的几个0
String[]ips=temp.split(" +");//切割
Arrays.sort(ips);//排序
for(String ip:ips){//迭代
System.out.println(ip.replaceAll("0*(\\d+)","$1"));}