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/// :~