如何使用Java正则表达式从AWS S3虚拟路径URI中提取区域信息?

huangapple go评论82阅读模式
英文:

How to extract region information from aws s3 virtual path uri using regex using java?

问题

我需要从以下s3虚拟路径uri中提取区域信息。
https://<bucket_name>.s3.<region_name>..com/
我的意图是从s3 uri中提取区域名称,并在使用aws java sdk 2.x创建s3客户端时提供区域。
有人可以帮我设计这个正则表达式吗?

英文:

I need to extract region information from s3 virtual based path uri as follows.
https://<bucket_name>.s3.<region_name>.<domain>.com/

My intention is to fetch the region name from s3 uri and provide the region while creation s3client using aws java sdk 2.x.

Can anyone help me with the regex for this?

答案1

得分: 2

matcher.group(0) 会返回整个匹配项(在这种情况下是完整的 URL)。调用 matcher.group(1) 将获得第一个匹配组,也就是在 () 内的正则表达式的第一部分。

英文:

Try this:

public class RegexTest {
    public static void main(String[] args) {
        String url = &quot;https://mybucket.s3.us-west-1.com/&quot;;

        Pattern p = Pattern.compile(&quot;https:\\/\\/.*\\.s3\\.(.*)\\.com&quot;);

        Matcher matcher = p.matcher(url);

        if(matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

matcher.group(0) will give you the entire match (the full URL in this case). Calling matcher.group(1) will get the first matched group, that is the first part of the regex encapsuled in ()

huangapple
  • 本文由 发表于 2020年8月10日 21:42:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/63341430.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定