如何获取网址的片段

时间:2018-08-15 14:32:35

标签: java android-studio url

我有一个URL https://example.com/A_segment/B_segment/ref=abc。有没有办法从中提取B_segment

* URL并不总是相同的,但B_segment总是跟随A_segment并在ref =之前。

1 个答案:

答案 0 :(得分:1)

假设URL也可以采用http://server.domain/what/ever/A_segment/xxxx/ref=123的形式,并且您对xxxx部分感兴趣,则可以使用正则表达式来查找/A_segment/(.+)/ref=部分。 (.+)部分代表任何一个或多个字符,由于括号的原因,它将被放置在group中(这里是1的索引,因为它是第一个(也是唯一的)组),以便我们抓取仅与该组匹配。

Demo

String url = "http://server.domain/what/ever/A_segment/xxxx/ref=123";
Pattern p = Pattern.compile("/A_segment/(.+)/ref=");
Matcher m = p.matcher(url);
if (m.find()){
    String result = m.group(1); //<-get match from group 1
    System.out.println(result); //Output: xxxx
} else {
    //here you can throw exception or return some default value in case of lack of match
}