我有一个URL https://example.com/A_segment/B_segment/ref=abc
。有没有办法从中提取B_segment
?
* URL并不总是相同的,但B_segment总是跟随A_segment并在ref =之前。
答案 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
}