(5)正则表达式——Java



import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ReTest {
    //正则表达式的用处:
    public static void main(String args[]){
        //1、在字符串包含验证时matches()
        //查找以Java开头,任意字符结尾的字符串
        Pattern pattern1=Pattern.compile("^Java.*");
        Matcher matcher1=pattern1.matcher("Java不是人");
        boolean b=matcher1.matches();
        System.out.println(b);//true

        //2、以多条件分割字符串时split()
        Pattern pattern2=Pattern.compile("[,|]+");
        String[] strs=pattern2.split("Java Hello World  Java,Hello,,World|Sun");
        for(int i=0;i<strs.length;i++){
            System.out.print(strs[i]+" ");
        }//Java Hello World  Java Hello World Sun 
        System.out.println();

        //3、文字替换(首次出现字符)replaceFirst()
        Pattern pattern3 = Pattern.compile("正则表达式");
        Matcher matcher3 = pattern3.matcher("正则表达式 Hello World,正则表达式 Hello World");
        //替换第一个符合正则的数据
        System.out.println(matcher3.replaceFirst("Java"));
        //Java Hello World,正则表达式 Hello World

        //4、文字替换(全部)replaceAll()
        Pattern pattern4 = Pattern.compile("正则表达式");
        Matcher matcher4 = pattern4.matcher("正则表达式 Hello World,正则表达式 Hello World");
        //替换全部符合正则的数据
        System.out.println(matcher4.replaceAll("Java"));
        //Java Hello World,Java Hello World

        //5、文字替换(置换字符)appendReplacement()、appendTail()
        Pattern pattern5 = Pattern.compile("正则表达式");
        Matcher matcher5 = pattern5.matcher("正则表达式 Hello World,正则表达式 Hello World ");
        StringBuffer sbr = new StringBuffer();
        while (matcher5.find()) {
            matcher5.appendReplacement(sbr, "Java");
        }
        System.out.println(sbr);//Java Hello World,Java
        matcher5.appendTail(sbr);
        System.out.println(sbr);//Java Hello World,Java Hello World

        //6、验证是否为邮箱地址
        String str="ceponline@yahoo.com.cn";
        //Pattern.CASE_INSENSITIVE:对大小写不敏感
        Pattern pattern6 = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+",Pattern.CASE_INSENSITIVE);
        Matcher matcher6 = pattern6.matcher(str);
        System.out.println(matcher6.matches());
        //true

        //7、去除html标记
        //+?非贪婪模式,Pattern.DOTALL:匹配空格换行等
        Pattern pattern7 = Pattern.compile("<.+?>", Pattern.DOTALL);
        Matcher matcher7=pattern7.matcher("<a href=\"index.html\">主页</a>");
        String string = matcher7.replaceAll("");
        System.out.println(string);//主页

        //8、查找html中对应条件字符串
        //()一个子组,0为匹配到的整个字符串,1为第一个子组
        Pattern pattern8 = Pattern.compile("href=\"(.+?)\"");
        Matcher matcher8 = pattern8.matcher("<a href=\"index.html\">主页</a>");
        if(matcher8.find()){//匹配的话
            System.out.println(matcher8.group(0));//href="index.html"
            System.out.println(matcher8.group(1));//index.html
        }

        //9、截取http://地址
        Pattern pattern9 = Pattern.compile("(http://|https://){1}[\\w[.-/]:]+");
        Matcher matcher9 = pattern9.matcher("dsdsds<http://dsds//gfgffdfd>fdf");
        StringBuffer buffer = new StringBuffer();
        while(matcher9.find()){
            buffer.append(matcher9.group());
            buffer.append("\r\n");           
        }
        System.out.println(buffer.toString());//http://dsds//gfgffdfd

        //10、替换指定{}中文字
        String st = "Java目前的发展史是由{0}年-{1}年";
        String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
        for(int i=0;i<object.length;i++){
            String[] result=object[i];
            Pattern pattern = Pattern.compile(result[0]);
            Matcher matcher = pattern.matcher(st);
            st=matcher.replaceAll(result[1]);
        }
        System.out.println(st);
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值