首页 > 解决方案 > 使用正则表达式从 aws s3 url 中提取存储桶名称

问题描述

我想从 AWS s3 URL 中提取存储桶名称。

URL 可以有多种格式。以下是支持的 s3 URL 的正则表达式列表:

[a-z0-9.-]+\.s3\.amazonaws\.com
[a-z0-9.-]+\.s3-[a-z0-9-]+\.amazonaws\.com
[a-z0-9.-]+\.s3\.[a-z0-9-]+\.amazonaws\.com
[a-z0-9.-]+\.s3-website[.-](eu|ap|us|ca|sa|cn)

例子:

bucket-name.s3.us-west-2.amazonaws.com
bucket.name.s3.us-west-2.amazonaws.com
bucket-name.s3-us-west-2.amazonaws.com
bucket.name.s3-us-west-2.amazonaws.com
bucket-name.s3.amazonaws.com
bucket.name.s3.amazonaws.com

我想要一个可以bucket-nameGoLang.

标签: regexgoamazon-s3

解决方案


这会起作用:

^(.+)(?:\.s3[-.].*)$

翻译:

从字符串的开头找到通向.s3.or的所有内容,.s3-并将其捕获到组 #1 中。

您的存储桶名称将位于$1.

请参阅下面的 regex101 链接并使用代码生成器查看 Golang 示例。

https://regex101.com/r/LRvA5F/1


推荐阅读