正则表达式

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

public class PatternDemo {
    public static void main(String[] args) {
        //带匹配字符串
        String str = "akv";
        //1.创建出Pattern类的对象--------指定匹配规则
        Pattern pattern = Pattern.compile("[akf][lfdk][vjds]");
        //2.把带匹配的字符串和匹配规则进行关联
        Matcher matcher = pattern.matcher(str);
        //3.进行匹配
        System.out.println(matcher.matches());
    }
}

正则表达式匹配

// 匹配内容为abc的字符串
    String str = "abc";
    System.out.println(str.matches("abc"));


// 匹配字符串由abd/cfg/kjl组成
// [] ---- 任意匹配其中一个
    String str = "afk";
    System.out.println(str.matches("[abd][cfg][kjl]"));


// .任意字符
    String str = "a";
    System.out.println(str.matches("."));


// 匹配.字符  \\. ---为字符串转义      \. ---为正则转义---
    System.out.println(str.matches("\\."));


// 匹配\
// \\\\ ------ 字符串转义 \\ ----- 正则转义 --- \
    String str = "\";    
    System.out.println(str.matches("\\\\"));


// 匹配"\t"字符串,str.matches("\t")或str.matches("\\t")或str.matches("\\\t")
    String str="\t";
    System.out.println(str.matches("\\\t"));


// + ---- 修饰前面的字符出现的次数  >=1 最少出现一次
    String str = "aewqe3";
    System.out.println(str.matches("a.+[0-9]"));


// ? ---- <=1, 最多出现一次
    String str1 = "9a";
    System.out.println(str1.matches("[0-9].?[a-z]"));


// * ----- 代表可以不出现,也可以出现多次
    String str2 = "ab";
    System.out.println(str2.matches("a.*b"));
    

// {n} ---- 匹配n个重复字符的字符串
    String str3 = "aaaaa";
    System.out.println(str3.matches("a{5}"));


// {n,} --- 前面的字符最少出现n次
    String str4 = "aaadfafdfas";
    System.out.println(str4.matches(".{8,}"));


// {n,m} --- 前面的字符出现次数在n和m之间,闭区间
    String str5 = "adfadfa";
    System.out.println(str5.matches(".{2,8}"));

// 匹配含有ab的字符串
    String str="jjabk;l";
    System.out.println(str.matches(".*ab.*"));


// () --- 捕获组,编号从一开始
/*    \\n ---- n是捕获组的编号
 *    捕获组的编号遇见”(“ 就开始编号
 *    (A(C(D))B)E)(F)G
 *     1    A(C(D))B
 *     2    C(D)
 *     3    D
 *     4     F
 * */
    String str1 = "abab4";            
    System.out.println(str1.matches(".*ab.*ab.*"));
    System.out.println(str1.matches(".*(ab).*\\1.*"));


// 匹配叠字
    String str2 = "aaaaa";
    System.out.println(str2.matches("(.)\\1+"));


// 对字符串中的数字进行排序
// 1.替换 ---只剩数字
    String str="jja136sd54l";
    str = str.replaceAll("[a-z]", "");


// \\[ | \\]表示去掉 ”【“ 和 “】”
    String str="13[65]]4";
    str = str.replaceAll("\\[|\\]", "");
    System.out.println(str);    //13654;


// 对字符串中的数字进行排序
    // 1.替换 ---只剩数字
    str = str.replaceAll("[a-z]", "");
    // \\[ | \\]表示去掉 ”【“ 和 “】”
    str = str.replaceAll("\\[|\\]", "");
    // 2.把字符串转化为字符数组
    char[] cs = str.toCharArray();
    // 3.对字符数组进行排序
    Arrays.sort(cs);
    System.out.println(Arrays.toString(cs));


// 通过replace()实现互换
    String str="tomandjack";
    //把tom和jack互换
    //$ ---- 表示在其他的表达实力拿捕获组$n ------ n为捕获组编号
    System.out.println(str.replaceAll("(tom)(.*)(jack)", "$3$2$1"));


// 叠字变单字
    String str1 = "aaaaa";
    System.out.println(str1.replaceAll("(.)\\1+", "$1"));

 



 

posted @ 2020-08-18 21:46  minnersun  阅读(141)  评论(0编辑  收藏  举报