我一直在尝试使用regex模式从S3 URI获取S3存储桶名称,但没有运气。
示例:s3://example-bucket/file-name.filetype
最近我可以得到这个:\/\/([^\/].*[^\/])\/
但是我不确定如何否定结果中的斜杠
答案 0 :(得分:1)
部分([^/]+)
正在寻找一系列不是斜线的字符。
与你所能写的//([^/]+)/
保持密切联系,但这与
//([^/]+)
可选您可以使用lookbehind (?<=//)
和/或预测(?=/)
(?<=//)([^/]+)(?=/)
(取决于您的用例,可能会有几种不同的前瞻表达式)
所有正则表达方言都不支持'lookaround'特别是'lookbehind'。例如不在JavaScript中答案 1 :(得分:1)
如果您没有lookbehind选项(javascript正则表达式),并且您的网址结构足够一致,那么这个模式可能会很有用:
[^\/]+(?=\/[^\/])
英文:&#34;匹配一个或多个非正向斜杠,后跟(但实际上未通过前瞻匹配)一个正斜杠和一个非正斜杠&#34;。
(您的另一个选择是访问您的匹配组,以便摆脱您匹配的斜杠)