2 回答
TA贡献1876条经验 获得超6个赞
这会起作用:
^(.+)(?:\.s3[-.].*)$
翻译:
从字符串的开头找到通向
.s3.
or的所有内容,.s3-
并将其捕获到组 #1 中。
您的存储桶名称将位于$1
.
请参阅下面的 regex101 链接并使用代码生成器查看 Golang 示例。
https://regex101.com/r/LRvA5F/1
TA贡献2041条经验 获得超4个赞
利用
^(.*?)\.s3\b
见证明。
解释
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
.*? any character except \n (0 or more times
(matching the least amount possible))
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
\. '.'
--------------------------------------------------------------------------------
s3 's3'
--------------------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
去代码示例:
package main
import (
"fmt"
"regexp"
)
func main() {
r := regexp.MustCompile(`^(.*?)\.s3\b`)
str := "bucket-name.s3.us-west-2.amazonaws.com"
match := r.FindStringSubmatch(str)
fmt.Println(match[1])
}
- 2 回答
- 0 关注
- 188 浏览
添加回答
举报