从S3 URI中选择S3存储桶名称的正则表达式

时间:2017-03-28 13:36:20

标签: regex amazon-web-services amazon-s3

我一直在尝试使用regex模式从S3 URI获取S3存储桶名称,但没有运气。

示例:s3://example-bucket/file-name.filetype

最近我可以得到这个:\/\/([^\/].*[^\/])\/但是我不确定如何否定结果中的斜杠

2 个答案:

答案 0 :(得分:1)

部分([^/]+)正在寻找一系列不是斜线的字符。 与你所能写的//([^/]+)/保持密切联系,但这与

相同
//([^/]+)

可选您可以使用lookbehind (?<=//)和/或预测(?=/)

(?<=//)([^/]+)(?=/)

(取决于您的用例,可能会有几种不同的前瞻表达式)

所有正则表达方言都不支持'lookaround'特别是'lookbehind'。例如不在JavaScript中

Debuggex Demo

答案 1 :(得分:1)

如果您没有lookbehind选项(javascript正则表达式),并且您的网址结构足够一致,那么这个模式可能会很有用:

[^\/]+(?=\/[^\/])

英文:&#34;匹配一个或多个非正向斜杠,后跟(但实际上未通过前瞻匹配)一个正斜杠和一个非正斜杠&#34;。

(您的另一个选择是访问您的匹配组,以便摆脱您匹配的斜杠)

https://regex101.com/r/XM05Sw/2/