Java正则表达式语法及简单示例

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


public class TestMatcher {
    public static void main(String[] args) {
        //正则表达式对字符串的常见操作:字符串的匹配、切割、替换、获取。

        //字符串的匹配:matches()
        /*常用写法*/
//        1. boolean b = Pattern.matches("正则表达式", "匹配内容");
        String str = "13111225544";
        String regexp = "\\d{11}$";
        boolean b = Pattern.matches(regexp, str);
        System.out.println("正则匹配结果="+b);

        /*标准写法*/
//        2.Pattern p = Pattern.compile("正则表达式");  Matcher m = p.matcher("匹配内容");
//        boolean b = m.matches();

        Pattern p = Pattern.compile(regexp);
        Matcher m = p.matcher(str);
        boolean b2 = m.matches();
        System.out.println("正则匹配结果="+b2);

        /*语句匹配写法*/
//        3.if("aaab".matches(/^a*b$/)) {};
        System.out.println("正则匹配结果="+(str.matches(regexp)));


//        字符串切割:split()
        //DEMO
//        String str = "需要切割的字符串";
        //描述切割规则
//        String regex = "正则表达式";
        //切割后的字符串仍是字符串:
//        String sstr1 = str.split(regex);
        //切割后的字符串放在数组中:
//        String[] sstr2 = str.split(regex);

        String s = "哈哈##呵呵###哦哦#";
        String regex = "#+";
        String[] sstr1 = s.split(regex);
        for(String string:sstr1){
            System.out.print(string);
        }

//        字符串替换:replaceAll()
        //DEMO
//        String str = "需要替换的字符串";
        //匹配规则
//        String regex = "正则表达式";
//        String Str = str.replaceAll(regex, "替换内容");

        String str2 = "哈喽##你好###大聪明";
        //匹配规则
        String regex2 = "(.)\\1+";  //拓展:叠词切割 String regex = "(.)\\1+",这里用到了组的概念。
        //替换为:
        String newStr = str2.replaceAll(regex2, "、");
        //替换后结果:
        System.out.println(newStr);

//        字符串获取:group()
        //DEMO
        //获取字符串“Hi ! welcome to my blog haha”中为两个字母的单词.
        String s3 = "Hi ! welcome to my blog haha";
        //1、匹配子串
        String regex3 = "\\b[a-zA-Z]{2}\\b";
        //2、获取匹配器
        Pattern p3 = Pattern.compile(regex3);
        Matcher m3 = p3.matcher(s3);
        //3、使用匹配器的group()方法来获取:(find方法是判断是否具有匹配子串)、
        System.out.println("”"+s+"“中的两个字母的单词有:");
        while(m3.find()){
            System.out.println(m3.group());
        }

    }

}

 

posted on 2021-11-19 19:22  oktokeep  阅读(415)  评论(1编辑  收藏  举报