08_正则表达式
 4/29/2021  java-basic
[toc]
# 推荐阅读
# 常见用法
# 1.获取网站域名
(1)工具类
public class DomainHelper {
    public static final String REG_DOMAIN_FULL = "(?<=//)(.*?)((?=/)|(?=$))";
    public static String getFullDomain(String url) {
        return getDomain(url, REG_DOMAIN_FULL);
    }
    public static String getTopDomain(String url) {
        String fullDomain = getDomain(url, REG_DOMAIN_FULL);
        String[] split = fullDomain.split("\\.");
        String topDomain = null;
        if(split.length >= 2){
            topDomain = split[split.length-2] + "."+split[split.length-1];
        }else{
            topDomain = fullDomain;
        }
        return topDomain;
    }
    public static String getDomain(String url, String reg) {
        Pattern p = Pattern.compile(reg);
        Matcher m = p.matcher(url);
        String domain = null;
        while (m.find()) {
            domain = m.group();
        }
        return domain;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(2)测试用例
    @Test
    public void getDoamin() {
        String url1 = "https://tool.oschina.net/uploads/apidocs/jquery/regexp.html";
        String fullDomain1 = DomainHelper.getFullDomain(url1);
        String topDomain1 = DomainHelper.getTopDomain(url1);
        System.out.println("fullDomain1: "+fullDomain1);
        System.out.println("topDomain1: "+topDomain1);
        String url2 = "http://localhost:8080/";
        String fullDomain2 = DomainHelper.getFullDomain(url2);
        String topDomain2 = DomainHelper.getTopDomain(url2);
        System.out.println("fullDomain2: "+fullDomain2);
        System.out.println("topDomai2n: "+topDomain2);
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
输出:
fullDomain1: tool.oschina.net
topDomain1: oschina.net
fullDomain2: localhost:8080
topDomai2n: localhost:8080
1
2
3
4
2
3
4