------- <a href="http://www.itheima.com" target="blank">android培训</a>
正则表达式常见操作:
1、匹配:String matches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。
2、切割:String split();
3、替换:String replaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号获取正则表达
式中的已有的组。
4、获取 将字符串中的符合规则的子串取出
步骤:1、将正则表达式封装成对象
2、让正则对象和要操作的字符串相关联
3、关联后,获取正则匹配引擎
4、通过引擎对符合规则的子串进行操作,如取出
/*
正则表达式练习
*/
import java.util.*;
class Demo03
{
public static void main(String []args){
//practise1();
//practise2();
practise3();
}
/*
练习一:有人结巴,说出了一串重复的数据,请你修正正确
"我我...我我...我要...要要...要要...学学...学学...学编...编编...编编编....程...程程"
思考方式:
1、如果想知道是否对错,用匹配
2、如果把一个字符串变成另一个字符串用替换
3、如果要按照指定的方式将一个字符编程多个字符串,用切割:规则以外的子串
4、拿到符合要求的字符串,用获取:规则以内的子串
*/
public static void practise1(){
String s = "我我...我我...我要...要要...要要...学学...学学...学编...编编...编编编....程...程程";
String reg1 = "\\.";
s = s.replaceAll(reg1, "");
sop(s);
String reg2 = "(.)\\1+";
sop(s.replaceAll(reg2, "$1"));
}
/*
练习二 将IP地址进行地址段顺序排序
192.8.1.254 2.3.68.2 66.24.65.128 172.28.132.203
*/
public static void practise2(){
String s = "192.8.1.254 2.3.68.2 66.24.65.128 172.28.132.203";
//在所有的IP前面加两个零, 保证每段至少为三位
s = s.replaceAll("(\\d+)", "00$1"); sop(s);
//每段只保留两位
s = s.replaceAll("0*(\\d{3})", "$1"); sop(s);
//以空格进行切割
String ch[] = s.split(" +");
//进行排序 Arrays.sort();
TreeSet<String> ts = new TreeSet<String>();
for(String ss : ch){
ts.add(ss);
}
//取出多余的零
for(String str : ts){
sop(str.replaceAll("0*(\\d+)", "$1"));
}
}
/*
练习三: 对邮件地址进行验证 practise
*/
public static void practise3(){
String s = "[email protected]";
String reg = "\\w+@\\w+(\\.\\w+)+";
System.out.println(s.matches(reg));
}
public static void sop(String s){
System.out.println(s);
}
}
<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------