Java正则匹配一例

Java正则匹配一例


 1/**
 2 * @author wangy
 3 * @date 2021-2-7 13:39
 4 */
 5
 6public class StringReg {
 7    static String pattern1 = "ab.cd";
 8    static String pattern2 = "ab.cd.ef";
 9    static String pattern3 = "java.util.String";
10    static String pattern4 = "ok";
11    static String pattern5 = "/profile/upload/2020/09/15/03589.png";
12
13    static String pattern6 = "hello@mary";
14
15    /** 判断字符串是否匹配 */
16    static String pattern12(String reg) {
17        boolean b1 = Pattern.matches(reg, pattern1);
18        boolean b2 = Pattern.matches(reg, pattern2);
19        boolean b3 = Pattern.matches(reg, pattern3);
20        boolean b4 = Pattern.matches(reg, pattern4);
21        return b1 + ", " + b2 + ", " + b3 + ", " + b4;
22    }
23
24    /** 匹配并替换首字母 */
25    static String replaceFirst(String reg) {
26        // return pattern1
27        // .replaceFirst(reg, String.valueOf(pattern1.charAt(0))
28        // .toUpperCase());
29        return Pattern
30                .compile(reg)
31                .matcher(pattern1)
32                .replaceFirst(pattern1
33                        .substring(0, 1)
34                        .toUpperCase());
35    }
36
37    /** 获取文件的格式后缀 */
38    static String getSuffix(String reg, String target) {
39        Matcher matcher = Pattern.compile(reg).matcher(target);
40        if (matcher.find()) {
41            return matcher.group(1);
42        }
43        return null;
44    }
45
46    public static void main(String[] args) {
47        System.out.println(pattern12("^([a-z]+\\.)+[a-z]+$"));
48        System.out.println(replaceFirst("\\w"));
49        System.out.println(getSuffix("(\\.\\w{3,4})", pattern5));
50        System.out.println(getSuffix("@(\\S+)", pattern6));
51    }
52}
53
54/*
55* true, true, false, false
56* Ab.cd
57* .png
58* mary
59*/
60/// :~